javascript筆記

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

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

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


<!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代碼裏面進行了這種判斷,語句是

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

判斷的依據是tid的值是否存在

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

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


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

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

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

說明jQuery進行了一定的封裝,想用這條語句是不行的,因此我們改成js原生的

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

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

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

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


在多個瀏覽器上測試:

chrome:通過

FileFox:通過

IE:通過


總結

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

判斷標籤是否存在

使用jquery的val時

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章