解決getElementsByClassName()在IE8下的相容問題
阿新 • • 發佈:2018-12-20
getElementsByClassName,這個方法讓我們可以通過 class 屬性中的類名來訪問元素,但是IE9 以下的瀏覽器不支援 。為解決這個問題,我們寫一個相容函式 getByClass() 實現在IE低版本和現代瀏覽器中都能通過類名來獲取節點。
function getByClass(name){ //如果瀏覽器支援 會得到一個函式體 if(document.getElementsByClassName){ return document.getElementsByClassName(name); } //把所有的元素獲取到 var allItems = document.getElementsByTagName("*"); var newArr = []; //查詢每一個元素的className 看其中含不含name for(var i = 0; i < allItems.length; i++){ var classNames = allItems[i].className;//"test test11" var arrClass = classNames.split(" "); for(var j = 0; j < arrClass.length; j++){ if(arrClass[j]==name){ newArr.push(allItems[i]); } } } return newArr; }