"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > JavaScript 개체가 DOM 요소인지 확실하게 확인하는 방법은 무엇입니까?

JavaScript 개체가 DOM 요소인지 확실하게 확인하는 방법은 무엇입니까?

2024-11-08에 게시됨
검색:374

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

JavaScript에서 DOM 개체 상태를 확인하는 방법

JavaScript에서는 DOM(문서 개체 모델) 개체와 일반 JavaScript 개체를 구별하는 것이 중요합니다. 특정 작업의 경우. tagName 속성을 확인하는 기존 접근 방식은 대부분의 경우 작동하지만 읽기 전용 속성을 적용하지 않는 일부 브라우저에서는 실패할 수 있습니다.

종합 솔루션

이 문제를 해결하려면 다음 함수를 고려하십시오.

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'
    );
  }
}

이 코드는 지원되는 브라우저에 대해 W3 DOM2를 활용하고 DOM2가 아닌 브라우저에서 특정 속성을 확인합니다.

추가 옵션

또 다른 접근 방식은 다음과 같습니다. 다음 코드를 사용하십시오:

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';
}

이 코드는 DOM 노드와 요소를 구별하여 브라우저 구현의 잠재적인 차이를 해결합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3