即使具有此ID的标记不存在,$(“#id”)也会重新调整非空值

时间:2010-12-29 06:27:22

标签: jquery

我在做

var tag = $("#foo");
if(tag != null) {
 // do something
}

问题是,即使首次执行脚本时标记不存在,标记变量的值也是非空的,因此它会破坏代码。

为什么会这样?

3 个答案:

答案 0 :(得分:8)

jQuery选择器永远不会返回null - 你得到一个空的jQuery集合。您可以测试:

if(tag.length){
    // do something
}
如果找不到任何内容,

tag.length将为零,这在JavaScript中是错误值。

更好的是,如果您所做的只是简单的jQuery操作,那么您根本不需要检查结果 - 空操作会无声地失败以允许链接:

$('#id').show().find('.field').css('color', 'red')
 .add('#otherId').text('done');

答案 1 :(得分:0)

您必须检查length属性以查看元素是否存在。

为了更好的方法,您可以参考this Stackoverflow线程。

答案 2 :(得分:0)

您也可以使用 尺寸 来做同样的事情。

if ( $(selector).size() > 0 ) {  
  //do something  
 }