Jquery判断是否存在某个class:jQuery:检查是否存在具有特定类名的div

使用 jQuery 我编程生成一堆div是这样的:

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

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

503

您可以通过检查从 jQuery 返回的第一个对象来简化这一点:

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

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

编辑 04 / 10 / 2013:我已经创建了一个 jsperf 测试用例here

135

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

$('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/ UPDATE

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

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

我的第一次测试表明,属性检索比索引检索更快,尽管 IMO 它是相当微不足道的。我仍然更喜欢使用长度,因为它对代码的意图更有意义,而不是更简洁的条件。

94

没有 jQuery:

原生 JavaScript 总是会更快。在这种情况下:(example)

if (document.querySelector('.mydivclass') !== null) {
    // .. it exists
}

如果要检查父元素是否包含具有特定类的另一个元素,则可以使用以下任何一种。(example)

var parent = document.querySelector('.parent');
if (parent.querySelector('.child') !== null) {
    // .. it exists as a child
}

或者,您可以在父元素上使用.contains()方法。(example)

var parent = document.querySelector('.parent'),
    child = document.querySelector('.child');
if (parent.contains(child)) {
    // .. it exists as a child
}

..最后,如果要检查给定元素是否仅包含某个类,请使用:

if (el.classList.contains(className)) {
    // .. el contains the class
}
71
$('div').hasClass('mydivclass')// Returns true if the class exist.

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(880)
制造业行业类别与代码:角模拟场 /属性与茉莉/业力(jasmine field)
上一篇
Django:Django或DjangoREST框架
下一篇

相关推荐