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

Javascript 文本节点对应的目标实例是什么?,javascript,Javascript,我不知道对应的instanceof测试适合文本节点。在下面的节点列表示例中,我可以跳过一些表和中断 child = paymentInfo[i]; if (child instanceof HTMLBRElement || child instanceof HTMLTableElement) { continue; } 没有类似的测试来评估文本节点吗?似乎在HTMLTextAreaElement上进行实验并不是一个合适的选择 通过检查我发现的nodeName,有一种解决方法,但最好使

我不知道对应的
instanceof
测试适合文本节点。在下面的节点列表示例中,我可以跳过一些表和中断

child = paymentInfo[i];
if (child instanceof HTMLBRElement || child instanceof HTMLTableElement) {
    continue;
}
没有类似的测试来评估文本节点吗?似乎在HTMLTextAreaElement上进行实验并不是一个合适的选择

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

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

关联的构造函数是
Text
window.Text
),因此您可以使用
instanceof Text

const foo=document.querySelector('#foo');
const textNode=foo.childNodes[0];
console.log(Text节点instanceof Text)

someText
关联的构造函数是
Text
window.Text
),因此您可以使用
文本实例:

const foo=document.querySelector('#foo');
const textNode=foo.childNodes[0];
console.log(Text节点instanceof Text)

someText
已经发布了答案;我可以使用开发工具(F12)添加它,并选择任何文本节点,通过查看属性选项卡,您可以看到所选节点作为
文本作为
\uuuu proto\uuuuuu
属性的值,它告诉我们它“继承”自此类节点,因此您可以使用
文本实例!我犯了一个错误,假设所有类型都有
htmlxxelement
表单,但这完全是错误的。当我在我的标签上钻研时,除了TextArea之外,没有任何合理的东西落在文本上。很高兴知道。已经发布了答案;我可以使用开发工具(F12)添加它,并选择任何文本节点,通过查看属性选项卡,您可以看到所选节点作为
文本作为
\uuuu proto\uuuuuu
属性的值,它告诉我们它“继承”自此类节点,因此您可以使用
文本实例!我犯了一个错误,假设所有类型都有
htmlxxelement
表单,但这完全是错误的。当我在我的标签上钻研时,除了TextArea之外,没有任何合理的东西落在文本上。很高兴知道。与问题无关,但是
querySelector()
应该处理一种语言,而
getElementById()
确切地知道它得到什么参数。因此,我想说,
querySelector()
确实较慢,即使它有一些用于简单查询的直接代码路径(比如V8中的反勾号之间有一个用于简单字符串的路径)。顺便说一句,
foo
在许多环境中都会自动成为变量。至少在现代浏览器上,带有
#
querySelector
getElementById
一样快。这只是我个人的偏好,但我总是默认使用
querySelector
,因为性能不是问题,而且更灵活。是的,ID会自动分配给窗口,但依赖它是不好的做法,所以我不想在回答中使用它,人们可能会从与问题无关的地方复制代码,但是
querySelector()
应该处理一种语言,而
getElementById()
确切地知道它得到的参数。因此,我想说,
querySelector()
确实较慢,即使它有一些用于简单查询的直接代码路径(比如V8中的反勾号之间有一个用于简单字符串的路径)。顺便说一句,
foo
在许多环境中都会自动成为变量。至少在现代浏览器上,带有
#
querySelector
getElementById
一样快。这只是我个人的偏好,但我总是默认使用
querySelector
,因为性能不是问题,而且更灵活。是的,ID会自动分配给窗口,但依赖它是不好的做法,所以我不想在人们可能会复制代码的答案中使用它