>  기사  >  웹 프론트엔드  >  요소가 HTMLElement인지 확인하는 방법 element_javascript 팁

요소가 HTMLElement인지 확인하는 방법 element_javascript 팁

WBOY
WBOY원래의
2016-05-16 17:10:162269검색

요소가 HMTElement 요소인지 확인하기 위해 nodeType==1을 자주 사용합니다. 페이지의 요소는 요소 노드, 속성 노드, 텍스트 노드 등을 포함한 모든 노드입니다. w3c nodeType의 정의는 다음과 같습니다

const unsigned short ELEMENT_NODE = 1;
const unsigned short ATTRIBUTE_NODE = 2;
const unsigned short TEXT_NODE = 3;
const unsigned short ENTITY_NODE = 6;

그러나 사용자 정의 개체에 nodeType 속성도 포함되어 있다면 어떻게 될까요? 예를 들어




코드 복사


코드는 다음과 같습니다.

isHTMLElement(obj);/ /true


위의 isHTMLElement(obj)는 true를 반환하지만 obj는 분명히 HTML 노드 요소가 아닙니다. 다음은 객체 특성과 try-catch 문으로 판단됩니다.




코드 복사

코드는 다음과 같습니다.
function isHTMLElement(obj){ var d = document.createElement("div"); try{ d.appendChild(obj.cloneNode(true)) return obj.nodeType==1?true:false; }catch( e){             return false; document.createElement("p")
isHTMLElement(obj1);//false
isHTMLElement(obj2);//false
isHTMLElement(obj3) ;//true


창과 문서에 특별한 처리가 필요합니다




코드 복사


코드는 다음과 같습니다. 다음과 같습니다:


function isHtmlControl (obj) {
var d = document.createElement("div")
try{
d.appendChild(obj. cloneNode(true));
return obj.nodeType= =1 ? true : false }catch(e){ } return obj==window } }
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.