首页 > web前端 > js教程 > 如何可靠地确定 JavaScript 对象是否是 DOM 元素?

如何可靠地确定 JavaScript 对象是否是 DOM 元素?

Mary-Kate Olsen
发布: 2024-10-27 07:08:03
原创
650 人浏览过

How to Reliably Determine if a JavaScript Object is a DOM Element?

如何在 JavaScript 中确定 DOM 对象状态

在 JavaScript 中,区分 DOM(文档对象模型)对象和常规 JavaScript 对象至关重要对于某些操作。虽然检查 tagName 属性的传统方法在大多数情况下都有效,但在某些不强制执行只读属性的浏览器中可能会失败。

综合解决方案

要解决此问题,请考虑以下函数:

<code class="javascript">function isElement(obj) {
  try {
    // W3 DOM2 (works for FF, Opera, and Chrome)
    return obj instanceof HTMLElement;
  } catch (e) {
    // Non-DOM2 browsers
    return (
      typeof obj === 'object' &&
      obj.nodeType === 1 &&
      typeof obj.style === 'object' &&
      typeof obj.ownerDocument === 'object'
    );
  }
}</code>
登录后复制

此代码利用 W3 DOM2 来支持受支持的浏览器,并检查非 DOM2 浏览器中的特定属性。

其他选项

另一种方法是使用以下代码:

<code class="javascript">function isNode(o) {
  return typeof Node === 'object'
    ? o instanceof Node
    : o &&
        typeof o === 'object' &&
        typeof o.nodeType === 'number' &&
        typeof o.nodeName === 'string';
}

function isElement(o) {
  return typeof HTMLElement === 'object'
    ? o instanceof HTMLElement
    : o &&
        typeof o === 'object' &&
        o !== null &&
        o.nodeType === 1 &&
        typeof o.nodeName === 'string';
}</code>
登录后复制

此代码区分 DOM 节点和元素,解决浏览器实现中的潜在差异。

以上是如何可靠地确定 JavaScript 对象是否是 DOM 元素?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板