1. 程式人生 > 其它 >渡一 18 選擇器,節點型別

渡一 18 選擇器,節點型別

節點有:
元素節點 1
屬性節點 2
文字節點 3
註釋節點 8
document 9
DocumentFragment 11

節點的四個屬性
nodeName:標籤名,只讀
nodeValue:節點的文字內容,可寫
nodeType:節點型別,只讀
attributes:Element節點的屬性集合

找節點:(包含文字,屬性等在內)
parentNode:父親節點(最頂端的是documents)
childNodes:子節點們
firstChild:第一個節點
lastChild:最後一個節點
nextSibling:下一個兄弟節點
previousSibling:前一個兄弟節點

找元素節點(有很多相容問題)

parentElement:返回父元素節點
children:只返回當前元素的元素節點,不找孫子
node.chilElementCount == node.children.length 當前元素節點的子元素個數(IE NO)
firstElementChild:第一個元素節點(IE NO)
lastElementChild:最後一個元素節點(IE NO)
nextElementSibling/previousElementSibling:後一個、前一個兄弟元素節點(IE NO)

function retElementChild(node){

    var temp = {
        length : 0,
        push : Array.prototype.push,
        splice : Array.prototype.splice
    },
    child = node.childNodes,
    len = child.length;

    for(var i=0;i<len;i++){
        if(child[i].nodeType === 1){
            temp.push(child[i]);
        }
    }
    
return temp; }

課堂練習
1.遍歷元素節點樹(在原型鏈上程式設計)
2.封裝函式,返回元素e在第n層祖先元素節點
3.封裝函式,返回元素e的第n個兄弟元素節點,n為正,返回後面的兄弟元素節點,n為負數,返回前面的,n為0,返回自已
4.編輯函式,封裝myChild功能,解決以前部分瀏覽器的相容性問題
5.自己封裝hasChildren()方法,不可用childen屬性