JS和JQuery獲取當前元素的兄弟及父級等元素的方法

  • 2019 年 11 月 13 日
  • 筆記

jQuery獲取:

jQuery.parent(expr),找父親節點,可以傳入 expr 進行過濾,比如 $("span").parent() 或者 $("span").parent(".class")

jQuery.parents(expr),類似於 jQuery.parents(expr) ,但是是查找所有祖先元素,不限於父元素

jQuery.children(expr),返回所有子節點,這個方法只會返回直接的孩子節點,不會返回所有的子孫節點

jQuery.contents(),返回下面的所有內容,包括節點和文本。這個方法和 children() 的區別就在於,包括空白文本,也會被作為一個 jQuery 對象返回, children() 則只會返回節點

jQuery.prev(),返回上一個兄弟節點,不是所有的兄弟節點

jQuery.prevAll(),返回所有之前的兄弟節點

jQuery.next(),返回下一個兄弟節點,不是所有的兄弟節點

jQuery.nextAll(),返回所有之後的兄弟節點

jQuery.siblings(),返回兄弟姐妹節點,不分前後

jQuery.find(expr),跟 jQuery.filter(expr) 完全不一樣:

jQuery.filter(),是從初始的 jQuery 對象集合中篩選出一部分,而

jQuery.find(),的返回結果,不會有初始集合中的內容,比如 $("p").find("span") ,是從 <p> 元素開始找 <span> ,等同於 $("p span")

JS獲取:

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

JS獲取節點父級,子級元素:JS的方法會比JQUERY麻煩很多,主要則是因為FF、Google瀏覽器會把你的換行也當作DOM元素:空的text元素,目前IE也是這樣

<div id="test">    <div></div>    <div></div>  </div>

原生的JS獲取ID為test的元素下的子元素。

var a = docuemnt.getElementById("test").getElementsByTagName("div");

這樣是沒有問題的,此時 a.length=2;

但是如果我們換另一種方法:

var b =document.getElementById("test").childNodes;