element.children 獲取的是當前元素的所有子節(jié)點元素(不包括文本元素)你踩,children返回的是HTMLCollection類型
element.childNodes 獲取的是當前元素的有所子元素(節(jié)點元素和文本元素)搔预,childNodes返回的是NodeList類型
children會出現(xiàn)不兼容問題攒庵,兼容性代碼如下:
1. 判斷該瀏覽器是否支持children屬性智玻,是則返回element.children
2.如果不支持撒轮,則通過childNodes來獲取該元素的所有子元素
3.通過nodeType屬性過濾掉非節(jié)點元素逐沙,保存到elementArr中
4.返回elementArr
代碼如下:
function getElementChild(element){
if (!element.children) {
var elementList = element.childNodes;
var elementItem,
elementArr = [];
for(var i = 0; i < elementList.length; i++){
elementItem = elementList[i];
if(elementItem.nodeType == 1){//說明該節(jié)點為元素節(jié)點
elementArr.push(elementItem);
}
}
return elementArr;
}else{
return element.children;
}
}