JS原生判斷DOM節點是否存在頁面中
JavaScript原生函數沒有提供判斷DOM節點是否存在方法,我們通常取得DOM節點幾乎都是document.getElement..方法,會傳回一個object數組合集,我們可以透過object [0],object[1]這樣來存取這個合集的每一個物件。既然回傳的是數組合集,那就有length屬性,而length大於等於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>
注意:如果使用是使用document.getElementById()方法獲取物件的就不能使用exist()方法,因為根據ID一個節點物件取不到節點物件的方法。節點的情況下會回傳一個空對象,不會整合原型exist()函數,所以會報錯!所以如果是根據ID取物件的可以直接if(obj)這樣既可判斷DOM節點是否存在頁面中
jQuery判斷DOM節點是否存在頁中
可以這麼乾
添加原型:
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
添加原型:
(function($) { $.fn.exist = function(){ if($(this).length>=1){ return true; } return false; }; })(jQuery);
添加原型:
这里是id=a节点<div>这里是DIV节点</div> <div>这里是DIV节点</div> <span>这里是span节点</span>
使用方法:
假如頁有下列DOM節點alert($('#aaa').exist()); // false alert($('#a').exist()); // true alert($('div').exist()); // true alert($('p').exist()); // false
rrreee