天天看點

JS/jQuery判斷頁面中是否存在指定元素

有時候需要判斷頁面中是否有某個元素。但是僅僅使用

$(node).length

,如果

node

是一個已定義的節點對象就會傳回1。

而有時頁面中已經沒有了這個節點,但隻要該對象未銷毀就會一直可用,也就一直傳回1的值。

要判斷頁面中有沒有該元素,最簡單的方法是:

if(node.parentNode) { alert("存在"); }			//原生DOM元素
if(jquery.parent().length) { alert("存在"); }	//jQuery對象
           

理論上來說,一個單獨的節點在脫離文檔

document

後不會再有父節點,即其是孤立的。當然根元素也沒有父節點,但根元素一般不可能脫離頁面。

但如果一個元素本身還有子節點,那麼它被移出文檔時子節點依然有其父節點。這時也不需要遞歸擷取,變通一下得到:

if(document.documentElement.contains(node)) { alert("存在"); }	//原生DOM元素
if($(document).find(node).length) { alert("存在"); }					//jQuery或DOM對象均可
           

理論上,使用第四種方法最為友善;DOM本身也提供了很多替代方案。

還有諸多方法可進行檢測,在此不一一列舉。

繼續閱讀