jQuery的each 方法中的this指针指向问题,这个是昨天工作中遇到的问题
jQuery.each 写法:
1 :
这样的写法在IE下会正常的输出,但是在firefox,则不会识别,尤其是对于自定义属性,this指针在闭包的时候出现差错。
2:
这样写就会避免使用this指针,就可以兼容ie和firefox了,i是代表当前是第几个变量,而item则代表这个变量所指的对象,是dom对象
所以我个人建议以后我们用jQuery 的each 方法 都用 第二种写法
jQuery.each 写法:
1 :
jQuery('input[type=checkbox]').each(function (){
alert(this.checked+this.treeId);//treeI的是自定义属性
});
这样的写法在IE下会正常的输出,但是在firefox,则不会识别,尤其是对于自定义属性,this指针在闭包的时候出现差错。
2:
jQuery.each(jQuery('input[type=checkbox]'),function (i,item){
alert("i=" + i + ",item="+jQuery(item).attr('自定义属性'));
});
这样写就会避免使用this指针,就可以兼容ie和firefox了,i是代表当前是第几个变量,而item则代表这个变量所指的对象,是dom对象
所以我个人建议以后我们用jQuery 的each 方法 都用 第二种写法

本文探讨了jQuery中each方法的this指针指向问题,在不同浏览器下的兼容性解决方案。通过改变遍历方式,实现了跨浏览器的一致表现。
539

被折叠的 条评论
为什么被折叠?



