當IE瀏覽器不支援document.getElementByClassName()
阿新 • • 發佈:2019-02-03
當我們寫程式碼時,尤其是要獲得一個物件的className值時,在IE下是不支援document.getElementByClassName()這種方法的,那麼我們可以自己寫一個方法用來獲取classname的值
function getByClassName(obj,cls){
// obj目標元素,cls要獲得的class名
var element = obj.getElementsByTagName('*');//將目標下的所有子元素獲取到
var result = []; //定義一個數組,存放獲得的classname = "cls" 的所有值
for(var i = 0; i< element.length; i++){
if(element[i].className == cls){
result.push(element[i]);
}
}
return result;
}
例子:
<div id= "diva" >
<div class = "divb">
<span>我是divb
</div>
</div>
如要獲得diva下的divb 則需要這樣寫
<script >
.
.
var a = document.getElementById("diva");
var result =getByClassName(a,"divb");
.
.
</script>
如果要求的div的父元素沒有屬性id,或者更向上一層的也沒有屬性id,那麼我能想到的辦法就是通過document.body獲取到body元素再向下逐層查詢。(注:請儘量不要用document.body和document.all)