jquery.each兼容IE,firefox

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 方法 都用 第二種寫法

發佈留言