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

转载于:https://my.oschina.net/u/2315939/blog/548105

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值