您的位置:首页 > Web前端 > JavaScript

javascript笔记

2015-12-09 16:03 591 查看
我已经不是第一次遇到像要判断对象是否存在了,依据对象是否存在做相应的处理,比如
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: