ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript オブジェクトが DOM 要素であるかどうかを確実に判断する方法

JavaScript オブジェクトが DOM 要素であるかどうかを確実に判断する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-27 07:08:03566ブラウズ

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

JavaScript で DOM オブジェクトのステータスを確認する方法

JavaScript では、DOM (Document Object Model) オブジェクトと通常の 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。