我不知道相应的instanceof
测试适用于文本节点。在下面的节点列表示例中,有一些表和中断,可以使用
child = paymentInfo[i];
if (child instanceof HTMLBRElement || child instanceof HTMLTableElement) {
continue;
}
是否没有用于评估文本节点的类似测试?似乎对HTMLTextAreaElement进行实验不是正确的选择。
通过检查我发现的nodeName有一个解决方法,但是最好使代码与其他条件保持一致。
paymentInfo[0].nodeName == "#text"
true
答案 0 :(得分:3)
关联的构造函数为Text
(window.Text
),因此您可以使用instanceof Text
:
const foo = document.querySelector('#foo');
const textNode = foo.childNodes[0];
console.log(textNode instanceof Text);
<div id="foo">someText</div>
如果要引用父元素并希望查看子元素 ,而跳过子文本节点,则可以使用.children
获取子元素的HTMLCollection(而不是.childNodes
,它为您提供了子文本节点和子元素的NodeList):
const foo = document.querySelector('#foo');
const children = foo.children;
console.log(children.length);
console.log(children[0]);
<div id="foo">
someText
<div id="someChild">someChild</div>
</div>