參考文章:jQuery 判斷頁面元素是否存在的代碼
一、判斷頁面元素
寫在前面:在Javascript里国撵,當(dāng)我們對某個頁面元素進(jìn)行某種操作前妈嘹,最好先判斷這個元素是否存在。原因是對一個不存在的元素進(jìn)行操作是不允許的凡恍。
Javascript中,獲取某個元素的正確的寫法:
var obj = document.getElementById("someID");
if (obj){
obj.innerText("hi");
}
但是怔球,在jQuery中嚼酝,jQuery對象永遠(yuǎn)都有返回值,所以$("someID") 總是TRUE 竟坛,IF語句沒有起到任何判斷作用闽巩。正確的寫法應(yīng)該是:
if ( $("#someID").length > 0 ) {
$("#someID").text("hi");
}
二、判斷屬性
獲取一個元素的屬性流码,如果存在某個屬性會返回屬性的值,如果不存在則會返回"undefined"又官,如圖:
image.png
我在chrome下做測試,判斷屬性是否存在可用
var attr = $(this).attr('name');
if ( attr == undefined) {
alert(111);
}
但是有網(wǎng)友說這樣更好一些:
var attr = $(this).attr('name');
// For some browsers, `attr` is undefined; for others, `attr` is false. Check for both.
if (typeof attr !== typeof undefined && attr !== false) {
// Element has this attribute
}
為了適配更多的應(yīng)用場景漫试,大家可用第二種方法六敬,否則第一種即可。