确定jQuery是否找不到任何元素

时间:2010-05-20 20:44:31

标签: jquery css-selectors

我正在使用jQuery的选择器,尤其是id选择器:

$("#elementId")...

我应该如何确定jQuery是否找到了该元素? 即使具有指定id的元素不存在,下一个语句也会给我:[object Object]

alert($("#idThatDoesnotexist"));

4 个答案:

答案 0 :(得分:174)

$('#idThatDoesnotexist').length正是您正在寻找的。 (如果没有找到任何内容,则会=== 0。)所以你的条件语句应该是:

if($('#id').length) { /* code if found */ } else { /* code if not found */ }

您正在从该警报返回一个对象,因为jQuery(几乎)总是在您使用它时返回“jQuery对象”,这是jQuery发现允许方法链接的元素的包装。

答案 1 :(得分:26)

Futuraprime是正确的,但您可以通过执行以下操作来缩短语法:

if ($("#id").length) {
   //at least one element was found
} else {
   //no elements found
}

答案 2 :(得分:11)

!$.isEmptyObject($.find('#id'))

如果元素存在,则返回true,否则返回false。

答案 3 :(得分:7)

$('#my_selector').length > 0 
$('#my_selector').get(0) !== undefined
$('#my_selector')[0] !== undefined

这是基本的,现在可以随心所欲。