JS는 페이지에 DOM 노드가 있는지 여부를 기본적으로 확인합니다
JavaScript 기본 함수는 DOM 노드가 있는지 확인하는 방법을 제공하지 않습니다. 일반적으로 document.getElement.. 메서드를 통해 DOM 노드를 얻습니다. , 객체 배열을 반환합니다. 컬렉션을 사용하면 객체[0], 객체[1]을 통해 이 컬렉션의 각 객체에 액세스할 수 있습니다. 배열 집합이 반환되므로 길이 속성이 있으며 길이가 1보다 크거나 같다는 것은 페이지에 DOM 노드가 존재한다는 의미입니다.
Object.prototype.exist = function(){ if(typeof this !='undefined' && this.length>=1){ return true; } return false; };
사용:
페이지에 다음 노드가 있다고 가정합니다.
<div>这里是DIV节点</div> <div>这里是DIV节点</div> <span>这里是span节点</span>
노드가 페이지에 있습니다:
var is_exist = document.getElementsByTagName('div').exist(); alert(is_exist); // true var is_exist = document.getElementsByTagName('span').exist(); alert(is_exist); // true var is_exist = document.getElementsByTagName('p').exist(); alert(is_exist); // false
참고: document.getElementById() 메서드를 사용하여 객체를 가져오는 경우 존재( ) 메소드는 ID를 기준으로 노드 객체를 얻는 메소드를 얻을 수 없기 때문에 노드의 경우 빈 객체가 반환되고 프로토타입exist() 함수가 통합되지 않으므로 오류가 보고됩니다! 따라서 ID를 기반으로 개체를 가져오는 경우 if(obj)를 직접 사용하여 페이지에 DOM 노드가 있는지 확인할 수 있습니다.
jQuery는 페이지에 DOM 노드가 있는지 확인합니다
이렇게 할 수 있습니다.
프로토타입 추가:
(function($) { $.fn.exist = function(){ if($(this).length>=1){ return true; } return false; }; })(jQuery);
사용:
페이지에 다음 DOM 노드가 있는 경우这里是id=a节点<div>这里是DIV节点</div> <div>这里是DIV节点</div> <span>这里是span节点</span>
판단:
alert($('#aaa').exist()); // false alert($('#a').exist()); // true alert($('div').exist()); // true alert($('p').exist()); // false
위의 두 가지 방법이 실제로 여부를 결정합니다. 객체는 객체 컬렉션의 길이 속성을 기반으로 존재합니다.