[ javascript ] getElementsByClassName與className和getAttribute!
阿新 • • 發佈:2017-07-05
bsp data- attribute mil turn cti asc amp getattr
對於標準瀏覽器,則能夠直接使用className 也能夠使用 getAttritbute,結果一樣:
可是假設是ie 6/7 ,則getAttribute()存在問題。
這裏的實現方式比較簡單。
對於javascript中的getElementsByClassName 在IE 6/7/8 不支持問題。
那麽須要模擬出getElementsByClassName 須要採用className屬性,這裏就涉及到javascript中的getAttribute問題。
在ie 6/7 中,對於getAttribute存在Bug
須要採用className 獲取例如以下:
var node = document.getElementById("test"); var name = node.className;
對於標準瀏覽器,則能夠直接使用className 也能夠使用 getAttritbute,結果一樣:
node.getAttritbute("class");
可是假設是ie 6/7 ,則getAttribute()存在問題。
所以getElementsByClassName 能夠使用例如以下方式:
getElementsByClazzName = document.getElementsClassName ? function(name){ return document.getElementsClassName(name); }:function(name){ var nodes = document.getElementsByTagName("*"), result = []; for(var node in nodes){ if(node.className && node.className.indexOf(name)){ result.push(node); } } return result; }
這裏的實現方式比較簡單。
1:常規屬性建議使用:node.xxx。
2:自己定義屬性建議使用: node.getAttribute("xxxx")。
3:當獲取的目標是 javascript 裏的keyword時建議使用node.getAttribute("xxx")。如label中的for。
4:當獲取的目標是保留字,如:class,請使用className取代。
[ javascript ] getElementsByClassName與className和getAttribute!