function children:
獲取curEle下所有元素子節(jié)點(兼容所有的瀏覽器),如果傳遞了tagName,可以在獲取的集合中進行二次篩選,把指定的標簽名獲取到
//首先獲取所有的子節(jié)點(childNodes),在所有子節(jié)點中把元素節(jié)點過濾出來
//如果多傳遞一個標簽名的話,我們還在獲取的子元素集合中把對應的標簽名進行二次篩選
function children(curEle,nodeName){
//IE6-8下不能使用內置屬性,自己寫代碼實現(xiàn)
if(/MSIE(6|7|8)/i.test(navigator.userAgent)){
var nodeList=curEle.childNodes;
var ary=[];
for(var i=0;i<nodeList.length;i++){
var curNode=nodeList[i];
if(curNode.nodeType===1){
ary[ary.length]=curNode;
};
}
}else{
//在標準瀏覽器中,直接使用children即可,但這樣獲取的是一個元素集合(類數組 ),為了和IE6-8保持一致,借用數組原型上的slice,實現(xiàn)把類數組轉換為數組
ary=Array.prototype.slice.call(curEle.children);
}
//二次篩選
if(typeof tagName==="string"){
for (var j=0;j<ary.length;j++){
var curEleNode=ary[j];
if(curEleNode.nodeName.toLowerCase()!==tagName.toLowerCase()){//不是我想要的標簽
ary.splice(j,1);
j--;
}
}
}
return ary;
}