JS中獲取節點的兄弟、父、子節點的各種問題
阿新 • • 發佈:2019-01-23
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>)不換行、不空格就行了……