1. 程式人生 > >JS中獲取節點的兄弟、父、子節點的各種問題

JS中獲取節點的兄弟、父、子節點的各種問題

JS中獲取節點的兄弟、父、子節點,一般情況下通過這種方式獲取:

var chils= s.childNodes;  //得到s的全部子節點
var par=s.parentNode;   //得到s的父節點
var ns=s.nextSibling;   //獲得s的下一個兄弟節點
var ps=s.previousSbiling;  //得到s的上一個兄弟節點
var fc=s.firstChild;   //獲得s的第一個子節點
var lc=s.lastChild;   //獲得s的最後一個子節點

獲取<div>的下一個<div>時,發現通過nextSibling的方式獲取不到,於是使用childNodes遍歷的方式解決問題:
    function agree(obj,aid){
        var divParent=obj.parentNode;
        var divChilds=divParent.childNodes;
        var divNext;
        for (var i = 0; i <divChilds.length; i++) {
            if (divChilds[i].className == 'media-right disagree') 
                divNext=divChilds[i];
        }
    }

後來發現,還是可以通過nextSibling的方式的:
    function agree(obj,aid){
        var divNext=obj.nextSibling;
    }

原因是……在web前端程式碼中相鄰元素(即上面例中的<div>)不換行、不空格就行了……