1

我打算$("#foo") !== null断言id="foo"页面中确实存在带有 的元素,但事实证明即使该元素不存在,选择器$("#foo")仍然返回一个对象。

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

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

使用?我也想过使用assert($("#foo").is("div")but 如果 HTML 被更改,并且元素不是 adiv而是变成por span,那么它将破坏断言。断言元素确实存在的一种好的标准方法是什么?

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

4

4 回答 4

1

为什么不只是:

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

由于元素的 id 是唯一的。

于 2013-04-01T08:03:39.277 回答
0

利用

$('#elementId').Length > 0

喜欢

jQuery 是否有“存在”功能?

于 2013-04-01T08:04:30.650 回答
0

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

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

于 2013-04-01T08:01:54.260 回答
0

像这样简单地做到这一点

if($("#mydiv").length){
 // mydiv exist
}
于 2013-04-01T08:13:27.357 回答