我打算$("#foo") !== null
断言页面中确实存在id="foo"
的元素,但即使元素不存在,结果显示$("#foo")
仍然返回一个对象。
所以要测试选择器是否可以找到一个元素,应该
assert($("#foo").length >= 1);
被使用?我还考虑过使用assert($("#foo").is("div")
,但如果HTML已更改,且该元素不是div
而是变为p
或span
,那么它将破坏断言。断言元素确实存在的标准方法是什么?
jsfiddle示例:http://jsfiddle.net/qnbAn/1/
答案 0 :(得分:1)
为什么不呢:
if ($("#foo").length){
// element with id foo existed
}
因为元素的id是唯一的。
答案 1 :(得分:0)
是的,您应该使用length来检查给定的选择器是否匹配任何内容。
不匹配的选择器会导致空的jQuery对象,但即使是空的jQuery对象也是有效的实例,并在布尔上下文中求值为true
。
答案 2 :(得分:0)
答案 3 :(得分:0)
像这样简单地执行此操作
if($("#mydiv").length){
// mydiv exist
}