tal*_*abi 14 javascript node.js
我有以下问题childNodes:
<ol>
<li>Coffee</li>
<li>Tea</li>
<li>Coca Cola</li>
</ol>
//childNodes.length = 7
Run Code Online (Sandbox Code Playgroud)
但
<ol><li> Coffee </li><li> Tea </li><li> Coca Cola </li></ol>
//childNodes.length = 3
Run Code Online (Sandbox Code Playgroud)
似乎每个\n或被textnode认为是child,我怎么能从中删除这些childNodes?
Har*_*rry 28
您可以使用nodeType.来检查给定的子节点是否是文本节点.文本节点将具有nodeTypeas 3.我们可以使用数字或常数Node.TEXT_NODE进行检查.
window.onload = function() {
var el = document.getElementsByTagName('ol')[0].childNodes; // using [0] as there is only one ol in the demo
console.log('Print with text nodes');
for (var i = 0; i < el.length; i++) { // will output all nodes with "undefined" for text nodes
console.log(el[i].innerHTML);
}
console.log('Print without text nodes');
for (var i = 0; i < el.length; i++) { // will output only non text nodes.
if (el[i].nodeType != Node.TEXT_NODE) // or if (el[i].nodeType != 3)
console.log(el[i].innerHTML);
}
}Run Code Online (Sandbox Code Playgroud)
<ol>
<li>Coffee</li>
<li>Tea</li>
<li>Coca Cola</li>
</ol>Run Code Online (Sandbox Code Playgroud)