想要判断某个dom节点是否存在,可以使用length属性来判断。
jquery使用length属性判断
length 属性包含 jQuery 对象中元素的数目。
示例:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script> </head> <body> <div id="a">这里是id=a节点</div> <div>这里是DIV节点</div> <div>这里是DIV节点</div> <span>这里是span节点</span> <script> (function($) { $.fn.exist = function() { if($(this).length >= 1) { return true; } return false; }; })(jQuery); alert($('#aaa').exist()); // false alert($('#a').exist()); // true alert($('div').exist()); // true alert($('p').exist()); // false </script> </body> </html>
也可以使用原生JS来判断
JS原生判断DOM节点是否存在页面中
JavaScript原生函数没有提供判断DOM节点是否存在方法,我们通常获取DOM节点几乎都是document.getElement..方法,会返回一个object数组合集,我们可以通过object[0],object[1]这样来访问这个合集的每一个对象。既然返回的是数组合集,那么就有length属性,而length大于等于1即表示DOM节点存在页面中
代码:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <div>这里是DIV节点</div> <div>这里是DIV节点</div> <span>这里是span节点</span> <script> Object.prototype.exist = function() { if(typeof this != 'undefined' && this.length >= 1) { return true; } return false; }; 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 </script> </body> </html>
注意:如果使用是使用document.getElementById()方法获取对象的就不能使用exist()方法,因为根据ID取节点对象的方法在取不到节点的情况下会返回一个空对象,不会集成原型exist()函数,所以会报错!所以如果是根据ID取对象的可以直接if(obj)这样既可判断DOM节点是否存在页面中
总结:以上两种方法其实都是根据对象集合的length属性判断对象是否存在。
© 著作权归作者所有
发表评论