DOM相关知识点
內容待補充。。。
DOM相關注意題目:DOM的最小組成單位叫做 //節點 Node DOM 有自己的國際標準,目前的通用版本是 //DOM 3 DOM 樹的根節點 //HTML 元素 Element 的 NodeType 值為 //1 和Node. ELEMENT_NODE<div id=x></div> x的值 //就是這個 id 為 x 的 div 對應的 Element 對象document.body.nodeName //"BODY"<div id=parent></div> parent的值 //如果有父窗口,就是父窗口。如果沒有,就是當前窗口(不要用全局屬性)
//如果想用,可聲明一個函數,并立即調用.call(),或者直接()
<div id=x></div> <div id=y></div> x.nextSibling 的值是 //回車構成的文本節點<div id=parent1> <div id=child1> </div> </div> parent1.childNodes 的值是 //{0:child1, length:1} 偽數組 var parent = document.getElementById('parent'); parent.childNodes.length // 2 parent.appendChild(document.createElement('div')); parent.childNodes.length // 請問現在 length 是多少 //3 因為最后有用childNodes重新看子節點 var allDiv = document.querySelectorAll('div> allDiv.length // 假設是 2 document.body.appendChild( document.createElement('div') ) allDiv.length // 請問現在 length 的值是多少??? //2 因為alldiv是在第一步就取出來了,后面也沒有重新取所以一直都是2//以上題目為什么一個 length 會動態變化,另一個 length 卻不會動態變化?
1 parent.childNodes 是動態集合。所謂動態集合就是一個活的集合,DOM樹刪除或新增一個相關節點,都會立刻反映在NodeList接口之中。? 2?document.querySelectorAll方法返回的是一個靜態集合。DOM內部的變化,并不會實時反映在該方法的返回結果之中。 ChildNode接口用于處理子節點(包含但不限于Element子節點)。Element節點、DocumentType節點和CharacterData接口,部署了ChildNode接口。凡是這三類節點(接口),都可以使用 // remove()、before()、after()、replaceWith() 節點的類型有七種,分別是 //Document、DocumentType、Element、Attribute、Text、Comment、DocumentFragment //(這三種不是:Doctype、Tag、TextElement)
?
HTMLCollection和NodeList的區別
在用原生javascript選擇器獲取dom元素的時候。能直接返回?
元素的也僅僅只有以下兩條
var dom1=document.getElementById("a"); var dom2=document.querySelector("#a");這兩種選擇器返回的是a元素。
而其他的選擇器,大部分返回的結果是HTMLCollection,或者NodeList。
NodeList 對象是節點的集合,返回的是 Node 集合與 Node(取索引)。由 Node.childNodes 和 document.querySelectorAll 所返回的。
HTMLCollection 對象是元素的集合,返回是 Element 集合與 Element(取索引)。由node.children 和 node.getElementsByXXX?
唯一要注意的是 querySelectorAll 返回的雖然是 NodeList ,但是實際上是元素集合,并且是靜態的(其他接口返回的HTMLCollection和NodeList都是live的)
HTMLCollection與NodeList的區別有:
1 HTMLCollection實例對象的成員只能是Element節點,NodeList實例對象的成員可以包含其他節點。
2?HTMLCollection實例對象可以用id屬性或name屬性引用節點元素,NodeList只能使用數字索引引用。
?
更多專業前端知識,請上 【猿2048】www.mk2048.com
總結
- 上一篇: 从零开始学习SVG
- 下一篇: innerHTML的用法