Hot For Coding
JavaScript判断DOM节点是否存在

JavaScript判断DOM节点是否存在页面中

JavaScript原生函数没有提供判断DOM节点是否存在方法,我们通常获取DOM节点几乎都是document.getElement...方法,会返回一个object数组合集,我们可以通过object[0],object[1]这样来访问这个合集的每一个对象。既然返回的是数组合集,那么就有length属性,而length大于等于1即表示DOM节点存在页面中

Code

Object.prototype.exist = function(){ 
  if(typeof this !='undefined' && this.length >= 1){
    return true;
  }

  return false;
};

使用

HTML

<div>这里是DIV节点</div>
<div>这里是DIV节点</div>
<span>这里是span节点</span>

JavaScript

var is_exist = document.getElementsByTagName('div').exist();
console.log(is_exist);    // Output: true
 
var is_exist = document.getElementsByTagName('span').exist();
console.log(is_exist);    // Output: true
 
var is_exist = document.getElementsByTagName('p').exist();
console.log(is_exist);    // Output: false

注意:如果使用是使用document.getElementById()方法获取对象的就不能使用exist()方法,因为根据ID取节点对象的方法在取不到节点的情况下会返回一个空对象,不会集成原型exist()函数,所以会报错!所以如果是根据ID取对象的可以直接if(obj)这样既可判断DOM节点是否存在页面中

jQuery判断DOM节点是否存在页面中

可以这么干

添加原型:

(function($) {
  $.fn.exist = function(){ 
    if ($(this).length >= 1) {
      return true;
    }
    return false;
  };
})(jQuery);

使用方法:

HTML

<div id="a">这里是id=a节点</div>
<div>这里是DIV节点</div>
<div>这里是DIV节点</div>
<span>这里是span节点</span>

JavaScript

console.log($('#aaa').exist()); // Output: false
console.log($('#a').exist());   // Output: true
console.log($('div').exist());  // Output: true
console.log($('p').exist());    // Output: false

以上两种方法其实都是根据对象集合的length属性判断对象是否存在

TITLE: JavaScript判断DOM节点是否存在

LINK: https://www.qttc.net/302_javascript_exist_a_dom.html

NOTE: 转载内容请注明出处