检查变量是否是有效的节点元素
如何更改 JS 元素以查看它是节点还是空变量?
How can I change a JS element to see if it is a node or an empty variable?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如何更改 JS 元素以查看它是节点还是空变量?
How can I change a JS element to see if it is a node or an empty variable?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
这取决于空变量的含义。
如果您的意思是它还没有分配值,您可以检查
undefined
或者如果您知道它有一个值,并且需要查看它是否是一个元素,您可以执行以下操作:
或者,如果您需要验证它是否是类型 1 元素,您可以这样做:
这消除了文本节点、属性节点、注释和 其他一些。
It depends on what you mean by an empty variable.
If you mean it hasn't had a value assigned, you can check for
undefined
Or if you know it has a value, and need to see if it is an element, you could do something like this:
Or if you need to verify that it is a type 1 element, you could do this:
This eliminates text nodes, attribute nodes, comments, and a bunch of others.
一个节点? DOM 元素?它有一个
.nodeType
属性。关于另一个答案的
nodeValue
,nodeValue可以为空,但节点总是有一个nodeType
。A node? A DOM element? it would have a
.nodeType
property.Regarding
nodeValue
for the other answer, the nodeValue can be empty but a node will always have anodeType
.使用 HTML 元素并查看 Chrome 开发工具中的“属性”选项卡
我们可以看到后代:
html->HTMLHtmlElement->HTMLElement->Element->Node->EventTarget->Object
现在我们不希望无论如何都要检查前两个,太多不同的可能性
这样我们就只剩下 HTMLElement 或 Element。那么有什么区别呢?
HTML、HEAD、SCRIPT、META、BODY、DIV、P 和 UL 都具有相同的继承:
HTMLElement->Element->Node->EventTarget->Object
现在,来自典型文档的一些负面结果如下:
因此,节点是共同点,但问题是如何检查有效的 DOM 节点,即如何检查有效的 DOM 节点元素。因此任何具有 HTMLElement 的对象都返回 true,否则返回 false。
好的,现在使用 Chrome 开发工具来查看 HTML 元素:
让我们检查原型还是 __proto?
好吧,所以使用节点已经无法使用了。让我们转到构造函数。
现在让我们包装在一个干净高效的实用函数中。
测试:
Using the HTML Element and taking a look at the Properties tab in Chrome Dev Tools
we can see the descendants:
html->HTMLHtmlElement->HTMLElement->Element->Node->EventTarget->Object
Now we do not want to check the first 2 no matter what, too many different possibilities
so that leave us with HTMLElement or Element. So what is the difference?
HTML, HEAD, SCRIPT, META, BODY, DIV, P and UL all have the same inheritance:
HTMLElement->Element->Node->EventTarget->Object
Now a few negative results from a typical document where:
So Node is the common denominator, but the question is to how to check for a Valid DOM Node it is how to check for a valid DOM Node Element. So any object with HTMLElement to return true, otherwise return false.
Ok now using the Chrome Dev Tools lets look at the HTML Element:
let's check the prototype or __proto?
Ok so using node is dead to use. Lets move to the constructor.
Now lets wrap in in a nice clean efficient utility function.
Tests: