>  기사  >  웹 프론트엔드  >  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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.