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

Mary-Kate Olsen
リリース: 2024-10-27 07:08:03
オリジナル
565 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!