文本节点对应的目标实例是什么?

时间:2020-02-12 08:09:33

标签: javascript

我不知道相应的instanceof测试适用于文本节点。在下面的节点列表示例中,有一些表和中断,可以使用

跳过
child = paymentInfo[i];
if (child instanceof HTMLBRElement || child instanceof HTMLTableElement) {
    continue;
}

是否没有用于评估文本节点的类似测试?似乎对HTMLTextAreaElement进行实验不是正确的选择。

NodeList with varied node types, including text elements

通过检查我发现的nodeName有一个解决方法,但是最好使代码与其他条件保持一致。

paymentInfo[0].nodeName == "#text"
true

1 个答案:

答案 0 :(得分:3)

关联的构造函数为Textwindow.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>

相关问题