十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
在传统的Javascript里,当我们对某个页面元素进行某种操作前,最好先判断这个元素是否存在。原因是对一个不存在的元素进行操作是不允许的。例如:
成都创新互联始终坚持【策划先行,效果至上】的经营理念,通过多达10年累计超上千家客户的网站建设总结了一套系统有效的全网推广解决方案,现已广泛运用于各行各业的客户,其中包括:搅拌罐车等企业,备受客户赞赏。
document.getElementById("someID").innerText("hi");
如果ID为"someID"的元素不存在,我们将得到Javascript运行错误:document.getElementById("someID") is null
正确的写法应该是:
obj = document.getElementById("someID");
if (obj){
obj.innerText("hi");
}
那么在jQuery,我们如何判断页面元素存在与否呢?如果参照上面的传统Javascript的写法,我们第一个想到的办法一定是:
if ($("#someID")){
$("#someID").text("hi");
}
可是这么写是不对的!因为jQuery对象永远都有返回值,所以$("someID")总是TRUE,IF语句没有起到任何判断作用。正确的写法应该是:
if ( $("#someID").length 0 ) {
$("#someID").text("hi");
}
注意:判断某个页面元素存在与否在jQuery实际上是没有必要的,jQuery本身会忽略对一个不存在的元素进行操作,并且不会报错。
在web前端开发中,经常会遇到判断一个对象是否存在的问题,一些开发者使用如下代码来判断
if($("#object_id"))
{
alert('对象存在');
}
else
{
alert('对象不存在');
}
其实以上代码是错误的判断写法,因为 jQuery选择器获取页面的element时,无论element是否存在,都会返回一个object对象,以上代码都将执行 alert('对象存在')。
正确的判断写法如下:
if($("#object_id").length0)
{
alert('对象存在');
}
else
{
alert('对象不存在');
}
使用 jQuery 对象的属性 length 来判断,如果大于0则表示存在,等于0则表示不存在。
//判断是否存在特定ID值的元素
if($("#id").length 0){alert("存在");}else{alert("不存在");}
//判断是否存在特定标签元素
if($("标签名(比如label)").length 0){alert("存在");}else{alert("不存在");}
//判断某元素下是否存在某元素
if($("#元素ID").find("要确定的ID").length 0){alert("存在");}else{alert("不存在");}
使用 jQuery 对象的属性 length 来判断,如果大于0则表示存在,等于0则表示不存在。
jquery判断对象是否存在代码如下:
说明:
定义和用法
length 属性包含 jQuery 对象中元素的数目。
语法
$(selector).length