首頁 > web前端 > js教程 > 主體

如何可靠地確定 JavaScript 物件是否是 DOM 元素?

Mary-Kate Olsen
發布: 2024-10-27 07:08:03
原創
643 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板