關於getElementByClassName的兼容性問題


我們都知道用getElementByClassName方法來獲取元素,有一些兼容性問題,IE9以下的瀏覽器並不支持這個方法;所以有時候我們需要自己寫一個函數去實現這個功能;

下面就開始寫這個函數啦;


function getClassName(name, tagPos){ // name是要傳的類名,tagPos參數可以使得這個函數功能更靈活;

tagPos = tagPos || document.body;

var tags  = tagPos.getElementByTagName('*');    //利用通配符的特性,獲取頁面上所有的標籤;

var resultArr = [];   // 申明一個數組,等會用來接收所有包括你想求的這個類名的元素;

for(var i = 0;  i < tags.length; i++){ //  遍歷每一個元素;

var tempArr = tags[i].className.split(' ');   /// 把每個元素的所有類名都切割成數組形式存到tempArr中(有時候標籤會有很多類名);


for( var j = 0; j < tempArr.length; j++ ){ //遍歷每個標籤的所有類名;

if(tempArr[j] ==  name){ // 如果有一個元素中的任意一個類名與我們要找的類名相同

resultArr [ resultArr.length ]= tags[i]; // 我們就把這個標籤放進先前的空數組中;

}


}

}

return resultArr;

}


好啦 一個簡陋版的在IE9以下求類名的函數就寫好啦;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章