jquery中獲取祖父、父、子結點的方法1
在前端程式設計中,少不了使用jquery,在其中要結合DOM樹來進行資料處理,那就離不開資料對結點的操作。
故在此總結一下對結點獲取方法:
1、向上對父及祖父結點訪問
parents()與parent()
(1)對祖父結點的獲取
使用parents([selecter])方法;括號內部填寫祖父結點的名字,便於確定從具體的哪一層結點開始找。
例如:$(this).parents(".img_href"),this表示當前結點,整體的意思是:從當前結點往上找,找到名為img_href的哪一層父結點。
(2)對父結點的獲取
使用parent()方法,返回被選元素的直接父元素(起點當前元素的直接父元素)。
獲取的是上一層的內容,即僅由返回一層的內容。返回值為一個物件,包含很多內容,具體內容可以自己寫一個例子來檢視。使用方法如下:
var parent = $(".img_href").parent(); // 獲取class為img_href的父節點,返回內容為物件。
console.log(parent); //列印返回的具體內容。一般用alert方法只會返回一個object的提示,用該方法可以在控制檯看到很多內容。
(3)closest(selector)方法 (起點為本身)
從當前元素開始,沿DOM樹向上匹配,返回被選元素的第一個祖先元素。
遇到a巢狀a標籤的情況下,獲取最近的a標籤,會有2個,即起點為自身的a,再向上獲取一個a,然後停止。
2、向下獲取子節點
(1)獲取子節點
使用.children(selector)方法,單一層級
返回被選元素的所有直接子元素,不返回文字結點,可以直接使用contents()獲取文字內容。
**** 不含selector則返回所有的子孫元素,含selector則返回對應selector下的所有子孫結點。
(2)find()獲取子結點
返回被選元素的後代元素,可以是子、孫、曾孫等,直至最後一層的後代。
【注】 children()與find()可以獲取同樣的資料,children裡面不需要引數,find()裡面給定引數。
具體例子如下:
<ul class="img_href">
<li></li>
<li></li>
<li></li>
</ul>
呼叫方法:find
var child = $(".img_href").find("li");
console.log(child);
呼叫方法:children
var child = $(".img_href").children();
console.log(child);