就像你所知道的那样
$("#ID")
返回具有ID的元素。
但是这个代码总是返回,即使没有元素。
alert($("#htrBuyerCouponNotice"));
alert(document.getElementById("htrBuyerConponNotice"));
在这种情况下。
这两行结果不同。
我想检查一个元素是否有htrBuyerCouponNotice
。
document.getElementByID
将返回null。
答案 0 :(得分:3)
您可以检查jQuery对象的length
属性以确定匹配元素的数量,例如:
alert($(selector).length);
您可以直接在if
语句中使用它,例如:
var $el = $(selector);
if ($el.length) { // only 0 will coerce to false
// ...
}
但是大多数时候你并不真的需要知道选择器是否匹配元素,因为jQuery内置方法将被忽略,例如:
$('#nonExistent').hide();
即使找不到该元素,上述语句也不会导致任何错误。
jQuery也有size
方法,但我建议您直接使用length
属性,因为它可以公开访问,size
方法稍慢,因为它只是一个函数返回length
属性的值。
答案 1 :(得分:1)
因为jQuery返回所选元素的列表,如果没有元素,你仍然会得到一个返回 - 它只是一个空列表。
检查$('#someID')。长度 - 如果我记得正确的话应该有效
答案 2 :(得分:1)
选择元素时,jQuery将始终返回匹配元素的数组。在您的情况下,$('#htrBuyerCouponNotice')
可能返回一个空数组。相反,请检查$('#htrBuyerCouponNotice').length
。
安德鲁
答案 3 :(得分:0)
尝试:
$("#htrBuyerCouponNotice").size()
如果没有带有该标识符的节点,它将为零,如果有,则为1。