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

问题描述 投票:1回答:1

我不知道相应的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
javascript
1个回答
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>

如果要引用父元素并想查看子元素elements,则跳过子元素文本节点时,可以使用.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>
© www.soinside.com 2019 - 2024. All rights reserved.