javascript筆記

我已經不是第一次遇到像要判斷對象是否存在了,依據對象是否存在作相應的處理,好比html

var hasSomething ="0";
if(jQuery("#tid").val()){
   hasSomething="1"
}

以前一直沒有記錄,第二次須要這種判斷的時候就拿不許這麼寫是否正確jquery


<!DOCTYPE html>
<html>
<head>
<script src="/jquery/jquery-1.11.1.min.js">
</script>
<script>
$(document).ready(function(){
  $("p").click(function(){
    if($("#tid").val()){
    $(this).hide();
    } 
  });
});
</script>
</head>
<body>
<input type="hidden" id="tid">
<p>若是您點擊我,我會消失。</p>
<p>點擊我,我會消失。</p>
<p>也要點擊我哦。</p>
</body>
</html>

上面的html代碼裏面進行了這種判斷,語句是chrome

 if($("#tid").val()){
    $(this).hide();
 }

判斷的依據是tid的值是否存在瀏覽器

<input type="hidden" id="tid" value="1">

若是tid有值,且不爲空串時,會執行if塊裏面的代碼,若是僅聲明瞭id="tid" ,而沒有value屬性,或屬性是"",是不會進入if塊的ide


同理,咱們試驗一下,判斷id="tid" 的標籤是否存在的語法是測試

    alert($("#tid"));
    if($("#tid")){
    $(this).hide();
    }

若是沒有聲明這個標籤,alert出來的結果是[Object Object],他並非空的this

說明jQuery進行了必定的封裝,想用這條語句是不行的,所以咱們改爲js原生的code

    var tid=document.getElementById("tid");
    alert(tid);

    if(tid){
    $(this).hide();
    }

這樣判斷是可行的,若是存在tid標籤會進入if塊,若是不存在,不會進去if塊htm

若是tid對應的標籤不存在,alert(tid)是null,若是存在,則是[Object HtmlInputElement]對象


在多個瀏覽器上測試:

chrome:經過

FileFox:經過

IE:經過


總結

if(document.getElementById("tid")){
}

判斷標籤是否存在

使用jquery的val時

if($("#tid").val()){
    $(this).hide();
    }

既判斷了標籤是否存在,還判斷了值,當且僅當標籤存在,且有value,且value不是""時,返回true

相關文章
相關標籤/搜索