Javascript 检查元素是否在生成元素或自定义元素中

Javascript 检查元素是否在生成元素或自定义元素中,javascript,html,Javascript,Html,我想知道是否有办法检查一个元素是内置的还是自定义的 我知道有一个选项使用element.constructor.name,来检查它是否正确。但问题是,引擎如何确定元素是未知元素还是已知元素 以下是一个示例: var elements=document.querySelectorAll('.content>*'); 数组.from(elements).forEach(el=>{ console.log(el.constructor.name) }) 测试元件 笨蛋 不确定是否有傻瓜式的方法(可

我想知道是否有办法检查一个元素是内置的还是自定义的

我知道有一个选项使用
element.constructor.name
,来检查它是否正确。但问题是,引擎如何确定元素是未知元素还是已知元素

以下是一个示例:

var elements=document.querySelectorAll('.content>*');
数组.from(elements).forEach(el=>{
console.log(el.constructor.name)
})

测试元件
笨蛋

不确定是否有傻瓜式的方法(可能调用DOM解析器?),但如果您可以确定导致无法获得准确结果的命名约定,则可以使用正则表达式筛选导致问题的字符,从更正的
节点名创建一个“dummy”元素,然后测试dummy:

var elements=document.querySelectorAll('.content>*');
数组.from(elements).forEach(el=>{
var dummy=document.createElement(el.nodeName.replace(+-+/,“”);
console.log(dummy.constructor.name)
})

测试元件
笨蛋

您对“内置”元素的定义是什么?哪种HTML规范将“内置”元素节点名组成一个大数组并进行比较。@Liam任何在DOM中注册的标记。简单来说,编译器如何知道哪个元素是未知元素?我们有很多预定义的标签,如
h
i
div等。我们还可以定制组件。但必须有一种方法来定义谁是谁。人们在定义语义方面花费了大量精力,制作了
h1-h6
页眉
页脚`部分。所以我想一定有办法,引擎应该自己知道什么引擎@StanE?Javascript引擎?因为Javascript不知道DTD(或care)。这就是重点。OP没有指定“内置”元素的定义,并且有多个标准。如果没有一个明确的定义,这里到底需要什么,如何回答这个问题?HTML只是XML的一个子集。XML只能根据DTD定义为“有效”。因此,我的“小”问题只是试图定义这里到底需要什么,因为这并不像OP认为的那样直截了当。我的目标是知道是否有具体的方法。这只是一个例子。我更感兴趣的是知道为什么
测试元素
被处理为HTMLElement?@Rajesh正如我在回答中提到的,我相信使用DOM解析器或像XHTML那样验证会做到这一点。XHTML解析听起来很有趣。我会检查的。