jQuery的attr设置属性无效的解决办法

今天用$("#div1").attr("scrollLeft","300");设置div滚动条的初始位置,结果在Firefox下不起作用,上次碰到的是设置maxlength在IE下无效。
在网上一查,没有相关的问题,不由得想到:如果attr确实有问题又没有人抱怨的话,那一定是有别的办法。
测试的结果是直接用
document.getElementById("div1").scrollLeft=300;
在Firefox和IE下都可以。那只要能得到相当于document.getElementById("div1")得到的对象就可以了。
用jQuery就是
$("#div1").get(0).scrollLeft=300;或者$("#div1")[0].scrollLeft=300;
测试代码如下:
  1. <html>
  2. <head>
  3. <title>Test div scroll</title>
  4. <style>
  5. div {width:300px;height:200px;overflow:scroll}
  6. </style>
  7. <script type="text/javascript" src="jquery.pack.js"></script>
  8. <script>
  9. $(document).ready(function(){
  10. //document.getElementById("div1").scrollLeft=300;
  11. //alert(document.getElementById("div1").scrollLeft);
  12. //$("#div1").attr("scrollLeft","300");
  13. //alert($("#div1").attr("scrollLeft"));
  14. //$("#div1").get(0).scrollLeft=300;
  15. setDivScrollPos();
  16.  
  17. });
  18.  
  19. function setDivScrollPos()
  20. {
  21.     $("div").each(function(){
  22.         this.scrollLeft=300;//each取得的this就是dom对象
  23.     });
  24. }
  25. </script>
  26. </head>
  27. <body>
  28. <div id="div1">dfdfdfdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd d</div>
  29. <br/>
  30. <div id="div2">dfdfdfdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd d</div>
  31. </body>
  32. </html>

结论:
1.attr设置后,alert出来的值是变了,但浏览器没有反应。
2.最好不要用attr设置属性,直接取出原始的dom对象设置属性。
标签: jQuery FAQ
评论: 1 | 引用: 0 | 阅读: 1114
  • 1 
cssrain [ 2008-08-26 15:00 网址 | 回复 | 编辑 删除 ]
<html>
<head>
<title>Test div scroll</title>
<style>
div {width:300px;height:200px;overflow:scroll}
</style>
<script src="http://www.cssrain.cn/demo/1/SildeTab/jquery-1.2.6.pack.js" type="text/javascript"></script>
<script>
$(document).ready(function(){
    $("#div1").attr("scrollLeft","300");
    $("#div2").attr("scrollLeft","300");
});
</script>
</head>
<body>
<div id="div1">dfdfdfdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd d</div>
<br/>
<div id="div2">dfdfdfdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd d</div>
</body>
</html>

IE7和ff2测试通过。
  • 1 
发表评论
昵 称: (必须)
密 码: (未注册用户可不填)
网 址: 邮 箱:
验证码: 验证码图片 选 项:
头 像:
内 容: