在傳統的Javascript裏,當咱們對某個頁面元素進行某種操做前,最好先判斷這個元素是否存在。緣由是對一個不存在的元素進行操做是不容許的。 spa
例如:代碼以下: code
document.getElementById("someID").innerText("hi"); 對象
若是ID爲"someID"的元素不存在,咱們將獲得Javascript運行錯誤:document.getElementById("someID") is null
正確的寫法應該是:代碼以下: ip
obj = document.getElementById("someID"); if (obj){ obj.innerText("hi"); }
那麼在jQuery,咱們如何判斷頁面元素存在與否呢?若是參照上面的傳統Javascript的寫法,咱們第一個想到的辦法必定是:
代碼以下: element
if ($("#someID")){
$("#someID").text("hi");
} get
但是這麼寫是不對的!由於jQuery對象永遠都有返回值,因此$("someID") 老是TRUE ,IF語句沒有起到任何判斷做用。正確的寫法應該是:
代碼以下: io
if ( $("#someID").length > 0 ) { //判斷jQuery 對象中元素的個數 $("#someID").text("hi"); } 或者 if ( $("#someID").size() > 0 ) { $("#someID").text("hi"); }
注意 :判斷某個頁面元素存在與否在jQuery其實是沒有必要的,jQuery自己會忽略 對一個不存在的元素進行操做,而且不會報錯。
代碼以下: function
$(document).ready(function(){
var value=$('#btn_delXml').length;
if(value>0)
{
alert('Extsts');
}
else
{
alert('not Extsts');
}
}) class
下面是其它說明雖然相似,但有些文字說明 變量
有的時候,要根據頁面加載的內容不一樣而做不一樣的操做,這個時候,判斷頁面上是否存在這個元素(或對象)變得尤其重要。若是寫JavaScript來實現,較爲麻煩,而jQuery卻能很容易的實現這個功能。咱們知道,jQuery選擇器獲取頁面的element時,不管element是否存在,都會返回一個對象。例如:var my_element = $("#element_Id" )
此時的變量my_element就是一個對象,既然是一個對象,這個對象就具備length的屬性,所以,用如下代碼能夠判斷元素(對象)是否存在:
代碼以下:
if(my_element.length>0){ alert("element is exist."); }else{ alert("element not be found"); }