我无法弄清楚相应的instanceof测试适合文本节点。在下面的节点列表示例中,有我可以跳过的表格和中断
child = paymentInfo[i];
if (child instanceof HTMLBRElement || child instanceof HTMLTableElement) {
continue;
}
Run Code Online (Sandbox Code Playgroud)
是否没有类似的测试来评估文本节点?似乎在 HTMLTextAreaElement 上进行实验并不是正确的选择。
有一个解决方法是检查我找到的节点名称,但最好使代码与其他条件保持一致。
paymentInfo[0].nodeName == "#text"
true
Run Code Online (Sandbox Code Playgroud)
关联的构造函数是Text( window.Text),因此您可以使用instanceof Text:
const foo = document.querySelector('#foo');
const textNode = foo.childNodes[0];
console.log(textNode instanceof Text);Run Code Online (Sandbox Code Playgroud)
<div id="foo">someText</div>Run Code Online (Sandbox Code Playgroud)
如果您想要引用父元素并希望查看子元素,同时跳过子文本节点,您可以使用.children获取子元素的 HTMLCollection (而不是.childNodes,它为您提供子文本节点和子元素的 NodeList )儿童元素):
const foo = document.querySelector('#foo');
const children = foo.children;
console.log(children.length);
console.log(children[0]);Run Code Online (Sandbox Code Playgroud)
<div id="foo">
someText
<div id="someChild">someChild</div>
</div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
277 次 |
| 最近记录: |