使用 jQuery 访问具有多个类的元素

sac*_*024 3 jquery class jquery-selectors

有时我们定义了一些具有多个类的元素,例如:-

<div class="a b c"> Hi this is div with multiple classes </div>
Run Code Online (Sandbox Code Playgroud)

现在,我想使用 jQuery 选择器访问这个 div 所以我想:-

var cls = "a b c"; 
$("." + cls); // Returns []
Run Code Online (Sandbox Code Playgroud)

这是有道理的,因为它实际上是试图找到所有类名为“a”的元素,然后试图在类“a”的元素内部进一步查找子元素“b”和“c”,这在语义上是错误的。所以我找到了一种方法来找到这样的元素:-

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; }
}
Run Code Online (Sandbox Code Playgroud)

它给了我正确的答案,但我不明白,为什么这是有效的以及如何使用 jQuery 选择这些元素。

Den*_*ret 5

只需使用此选择器:

$('.a.b.c')
Run Code Online (Sandbox Code Playgroud)

className为您提供以空格(“ab c”)分隔的所有类名。但是对于 css 和 jquery 选择器,您不能使用“ab c”。

你所做的是

$('.a b c')
Run Code Online (Sandbox Code Playgroud)

这意味着“a 类元素中 b 元素中的 c 元素”。