jQuery的each 方法中的this指針指向問題,這個是昨天工作中遇到的問題
jQuery.each 寫法:
1 :
Java代碼
jQuery('input[type=checkbox]').each(function (){
alert(this.checked+this.treeId);//treeI的是自定義屬性
});
jQuery('input[type=checkbox]').each(function (){
alert(this.checked+this.treeId);//treeI的是自定義屬性
});
這樣的寫法在IE下會正常的輸出,但是在firefox,則不會識別,尤其是對於自定義屬性,this指針在閉包的時候出現差錯。
2:
Java代碼
jQuery.each(jQuery('input[type=checkbox]'),function (i,item){
alert("i=" + i + ",item="+jQuery(item).attr('自定義屬性'));
});
jQuery.each(jQuery('input[type=checkbox]'),function (i,item){
alert("i=" + i + ",item="+jQuery(item).attr('自定義屬性'));
});
這樣寫就會避免使用this指針,就可以兼容ie和firefox瞭,i是代表當前是第幾個變量,而item則代表這個變量所指的對象,是dom對象
所以我個人建議以後我們用jQuery 的each 方法 都用 第二種寫法