來源
在jQuery底下,要檢查某元素是否存在,我ㄧ開始是這樣寫的:
if ($("#myid")) {
//#myid存在的話就來個alert
}
原本一切看似正常,後來卻發現,某個頁面明明沒有#myid,但是底下的alert動作仍然照常執行。
Google一下,在jQuery HowTo's正好有解答。原來使用$()呼叫物件時,jQuery永遠是有求必應地傳回物件給我們。所以上面這個條件式永遠都成立,有寫跟沒寫一樣。
正牌的寫法,是要利用jQuery傳回陣列的特性,用length來檢查陣列長度:
if ($("#myid").length > 0) {
//#myid存在的話就來個alert
}
當然直接用getElementById來寫也是可以的:
if (document.getElementById("myid")) {
//#myid存在的話就來個alert
}
沒有留言:
張貼留言