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

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

<div cl="mydivcl" id="myid1">Some Text1</div>
<div cl="mydivcl" id="myid2">Some Text2</div>

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

503

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

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

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

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

135

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

$('div.mydivcl').length

因此:

// since length is zero, it evaluates to false
if ($('div.mydivcl').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 (doent.querySelector('.mydivcl') !== null) {
    // .. it exists
}

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

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

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

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

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

if (el.clList.contains(clName)) {
    // .. el contains the cl
}
71
$('div').hasCl('mydivcl')// Returns true if the cl exist.

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

(761)
制造业行业类别与代码:角模拟场 /属性与茉莉/业力(jasmine field)
上一篇
Web代码安全漏洞深度剖析:安全漏洞清单(owasp development guide)
下一篇

相关推荐