有时我们已经定义了一些具有多个类的元素,如: -
<div class="a b c"> Hi this is div with multiple classes </div>
现在,我想使用jQuery选择器访问这个div所以我在尝试: -
var cls = "a b c";
$("." + cls); // Returns []
有道理,因为它实际上试图找到所有带有classname的元素为“a”,然后尝试在元素内部进一步找到子元素“b”和“c”,类“a”在语义上是错误的。所以我找到了一种方法来找到这样的元素: -
var a = "mk-search-contents boundary-top";
var all = $("div"); // Assuming I know the tagname if element i am interested in
for (var i=0; i<all.length; i++) {
if (all.get(i).className == a) { console.log(all.get(i)); break; }
}
它给了我正确答案,但我没理解,为什么这样做以及如何使用jQuery选择这样的元素。
答案 0 :(得分:4)
只需使用此选择器:
$('.a.b.c')
className
为您提供以空格分隔的所有类名(“a b c”)。但是对于css和jquery选择器,你不能使用“a b c”。
你做的是
$('.a b c')
表示“a类元素中b元素中的c元素”。
答案 1 :(得分:0)
尝试使用以下选择器匹配所有三个类
$('.a.b.c')
如果你想匹配三个中的任何一个
$('.a,.b,.c')