一本橙、節(jié)點類型意義
看下面html結(jié)構(gòu)固该,要求輸出ul的所有后臺元素標(biāo)簽名锅减,也就是輸出 li, b span 這三個,請給出你的代碼實現(xiàn)蹬音。
通過題目我們很容易發(fā)下上煤,如果能使用childnodes遍歷下子節(jié)點,并且遞歸的遍歷子節(jié)點的子節(jié)點就可以了著淆。
但是直接遍歷出來會有很多文本節(jié)點劫狠。如果有能區(qū)分,文本節(jié)點永部,元素節(jié)點独泞,以及標(biāo)簽名稱的方法就好辦了。
知識點一:元素節(jié)點
規(guī)定元素節(jié)點具有以下特點:
1苔埋、nodeType 值為1
2懦砂、nodeName 值為元素的標(biāo)簽名(還一個別名tagName)
3、nodeValue 值為null
4组橄、parentNode 一般是Element,也可能是Document
5荞膘、其子節(jié)點可能是 Element、Text玉工、Conment等
偽代碼示例:
var div1 = document.getElementById("div1");
echo(div1.nodeName);? ?? ???//輸出:DIV羽资,用途判斷節(jié)點的名稱
echo(div1.nodeType);? ?? ???//輸出:1,用途判斷節(jié)點的類型
echo(div1.nodeValue);? ?? ???//輸出:null遵班,用途獲取節(jié)點值
echo(div1.parentNode);? ?? ???//輸出:[object HTMLPreElement]屠升,用途獲取父節(jié)點
echo(div1.parentNode.nodeName); //輸出:PRE? ?? ???,用途獲取父節(jié)點名稱
echo(div1.childNodes);? ?? ???//[object NodeList]? ?? ???狭郑,用途獲取子節(jié)點
echo(div1.childNodes.length);? ?? ???//輸出:2腹暖,查看本節(jié)點下面子節(jié)點的個數(shù)
復(fù)制代碼
知識點二、屬性節(jié)點
1翰萨、nodeType 為2
知識點三:文本節(jié)點
文本節(jié)點有以下特征:
1. nodeType 值為3
2. nodeName 值為 “#text”
3. nodeValue 值為節(jié)點所包含的文本(別名:data屬性)
4. parentNode 是一個Element
5. 不能包含子節(jié)點脏答,文本節(jié)點是最小單元。
6. nodeValue.length或data.length中保存著文本節(jié)點中字符的數(shù)目缨历。
知識點四:注釋節(jié)點
1以蕴、nodeType為8
知識點五:文檔節(jié)點
1、nodeType 為 9
2辛孵、nodeName 為 #document