element.children 獲取的是當前元素的所有子節點元素(不包括文本元素),children返回的是HTMLCollection類型
element.childNodes 獲取的是當前元素的有所子元素(節點元素和文本元素),childNodes返回的是NodeList類型
children會出現不兼容問題,兼容性代碼如下:
1. 判斷該瀏覽器是否支持children屬性,是則返回element.children
2.如果不支持,則通過childNodes來獲取該元素的所有子元素
3.通過nodeType屬性過濾掉非節點元素,保存到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){//說明該節點為元素節點
elementArr.push(elementItem);
}
}
return elementArr;
}else{
return element.children;
}
}