在jquery中按id选择

时间:2010-03-10 06:39:49

标签: javascript jquery

就像你所知道的那样

$("#ID")  

返回具有ID的元素。

但是这个代码总是返回,即使没有元素。

alert($("#htrBuyerCouponNotice"));
alert(document.getElementById("htrBuyerConponNotice"));

在这种情况下。

这两行结果不同。

我想检查一个元素是否有htrBuyerCouponNotice

如果没有元素,

document.getElementByID将返回null。

4 个答案:

答案 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。