jQuery:检查是否存在具有特定类名的 div

使用jQuery,我以编程方式生成一堆's,如下所示:div

<div class="mydivclass" id="myid1">Some Text1</div>
<div class="mydivclass" id="myid2">Some Text2</div>

在我的代码中的其他地方,我需要检测这些DIV是否存在。divs 的类名相同,但每个 div 的 ID 都已更改。任何想法如何使用jQuery检测它们?


答案 1

您可以通过检查从JQuery返回的第一个对象来简化这一点,如下所示:

if ($(".mydivclass")[0]){
    // Do something if class exists
} else {
    // Do something if class does not exist
}

在这种情况下,如果第一个 () 索引处有一个真值,则假定类存在。[0]

编辑 04/10/2013:我在这里创建了一个jsperf测试用例。


答案 2

您可以使用 ,但 jQuery 建议您使用 length 以避免另一个函数调用的开销:size()

$('div.mydivclass').length

所以:

// since length is zero, it evaluates to false
if ($('div.mydivclass').length) {

http://api.jquery.com/size/

http://api.jquery.com/length/

更新

所选答案使用perf测试,但它略有缺陷,因为它还包括元素选择作为perf的一部分,这不是这里测试的内容。这是一个更新的perf测试:

http://jsperf.com/check-if-div-exists/3

我第一次运行测试表明,属性检索比索引检索更快,尽管IMO可以忽略不计。我仍然更喜欢使用长度,因为对我来说,它对代码的意图更有意义,而不是更简洁的条件。