DOM(3)查詢元素

2021-09-30 01:33:57 字數 2347 閱讀 5450

document.documentelement	//

document.head //

document.body //

(1)節點樹:包含所有節點內容的完整樹結構

①父子關係:

節點.parentnode 獲得當前節點的父節點

父節點.childnodes 獲得當前父節點下所有直接子節點的集合(簡稱集合)

父節點.firstchild 獲得當前父節點下第乙個直接子節點

父節點.lastchild 獲得當前父節點下的最後乙個子節點

②兄弟關係:

節點.previoussibling 獲得平級的前乙個相鄰的兄弟節點

節點.nextsibling 獲得平級的下乙個相鄰的兄弟節點

問題:找到的內容也包含看不見的換行和空字元,干擾查詢

(2)元素樹:僅包含元素節點的樹結構。(在節點樹中新增了僅指向元素節點的新屬性而形成的子樹結構)

①父子關係:

元素.parentelement 獲得當前元素的父元素(也可用parentnode)

父元素.children 獲得當前父元素下的所有直接子元素的集合

父元素.firstelementchild 獲得父元素的第乙個直接子元素

父元素.lastelementchild 獲得父元素的最後乙個直接子元素

②兄弟關係:

元素.previouselementsibling 獲得平級的前乙個兄弟元素

元素.nextelementsibling 獲得平級的下乙個兄弟元素

這裡就涉及到乙個筆試題:

定義乙個函式,遍歷乙個指定的父元素下的所有後代元素

(1)按id屬性查詢:

var 元素=document.getelementbyid(「id」);

找到返回元素物件;找不到返回null

(2)按標籤名查詢:

var 集合=父元素.getelementsbytagname(「標籤名」)

找到返回多個元素組成的集合;找不到返回空集合:.length=0

注意:

(3)按class屬性查詢

var 集合=父元素.getelementsbyclassname(「類名」);

找到返回多個元素組成的集合;找不到返回空集合:.length=0

注意:a 可限制在任意父元素內查詢,減少查詢範圍。

b 不僅查詢直接子元素,且在所有後代中查詢。

c 如果乙個元素同時被多個class修飾,則使用其中乙個class,就可找到該元素。無需所有class都滿足

(4) 按name屬性查詢

var 集合=document.getelementsbyname(「name名」);

找到返回多個元素組成的集合;找不到返回空集合:.length=0

注意:只能用document呼叫,不能用隨意乙個父元素呼叫

常用在表單中查詢表單元素時。

1 只查詢乙個符合條件的元素:

var 集合=父元素.queryselectorall(「任意複雜選擇器」)

找到返回多個元素組成的集合;找不到返回空集合:.length=0

總結:不需要查詢就可直接獲得:

document.documentelement

document.head

document.body

按節點間關係查詢:

父子關係;

元素.parentnode

父元素.children

元素.firstelementchild

元素.lastelementchild

兄弟關係:

元素.previouselementsibling

元素.nextelementsibling

按html特徵查詢:

var 元素=document.getelementbyid(「id」)

var 集合=父元素.getelementsbytagname(「標籤名」)

var 集合=父元素.getelementsbyclassname(「class名」)

var 集合=document.getelementsbyname(「name名」)

按選擇器查詢:

var 元素=父元素.queryselector(「任意選擇器」)

var 集合=父元素.queryselectorall(「任意選擇器」)

dom優化之一:

如果只用乙個條件就可以找到想要的元素時

首選使用getelementsby***()函式查詢——效率高

只有查詢條件複雜時,才選擇按選擇器查詢——效率低

dom 查詢元素節點

var div document.getelementsbytagname div 0 查詢元素節點,方法會存在一些相容性問題,ie低版本瀏覽器不支援 console.log div.parentelement 父元素節點 console.log div.children 子元素節點 console...

DOM 常用查詢元素

1 不需要查詢就可直接獲得的元素物件 4種 document.documentelement document.head document.body document.forms i 2 如果已經獲得乙個元素物件,找周圍附近的元素物件時,就用按節點間關係查詢 2大類關係,6個屬性.a.父子關係 4種...

操作dom元素(3)

class 標籤名 name 選擇器 queryselectorall 查屬性 點語法獲取元素的特點 attribute 獲取 設定 移除 查內容 textcontent innerhtml 增 innerhtml 新增 侷限性 document.createelement 新增步驟 2.設定標籤屬...