2009-05-24 144 views
22

如果$('#id')不匹配任何内容,会返回什么?我认为这将是空或虚假或类似的东西,所以我试着检查像这样:

var item = $('#item'); 
if (!item){ 
    ... 
} 

但这并没有奏效。

回答

44

您可以使用多少个元素相匹配:

$('selector').length 

要检查没有任何元素是否匹配,使用:

var item = $('#item'); 
if (item.length == 0) { 
    // ... 
} 
+5

是的,这是正确的方法。但是,要回答这个问题,它会返回一个匹配的DOM元素的对象/数组。 'length'属性可用于任何javascript对象(数组,字符串等)来确定它的长度(num元素,num字符等等)。 – KyleFarris 2009-05-24 19:06:01

+2

只用if(item.length) – redsquare 2009-05-24 19:26:49

5

一个不包含DOM节点的jQuery对象。

您应该能够使用

var item = $('#item'); 
if (!item[0]){ 
    ... 
} 

你的存在性检查。

1

长度属性的别名是大小()方法。所以,你基本上也可以查询:

$( “选择”),大小()

,看看有多少元素相匹配。

7

虽然$('selector').length非常适合查找您的选择器匹配多少个对象,但它实际上完全不需要。关于jQuery的一点是,所有基于选择器的函数都在内部使用长度,因此您只需执行$(selector).hide()(或其他任何操作),并且不会对空集执行任何操作。

相关问题