jQuery在页面中存在断言具有特定ID的元素的方式?

时间:2013-04-01 07:58:32

标签: jquery

我打算$("#foo") !== null断言页面中确实存在id="foo"的元素,但即使元素不存在,结果显示$("#foo")仍然返回一个对象。

所以要测试选择器是否可以找到一个元素,应该

assert($("#foo").length >= 1);

被使用?我还考虑过使用assert($("#foo").is("div"),但如果HTML已更改,且该元素不是div而是变为pspan,那么它将破坏断言。断言元素确实存在的标准方法是什么?

jsfiddle示例:http://jsfiddle.net/qnbAn/1/

4 个答案:

答案 0 :(得分:1)

为什么不呢:

if ($("#foo").length){
    // element with id foo existed
}

因为元素的id是唯一的。

答案 1 :(得分:0)

是的,您应该使用length来检查给定的选择器是否匹配任何内容。

不匹配的选择器会导致空的jQuery对象,但即使是空的jQuery对象也是有效的实例,并在布尔上下文中求值为true

答案 2 :(得分:0)

使用

$('#elementId').Length > 0

Is there an "exists" function for jQuery?

答案 3 :(得分:0)

像这样简单地执行此操作

if($("#mydiv").length){
 // mydiv exist
}