element.classList.contains()究竟是如何在JavaScript中运行的?

时间:2014-12-19 12:24:50

标签: javascript

我需要使用element.classList.contains('some-class')检查一个元素是否包含三个类中的至少一个,所以我写道:

if (element.classList.contains('class1', 'class2', 'class3')) {
  // do stuff here
}

结果是 - 如果元素具有' class1',则返回true,无论它是否具有' class2'或/和' class3',和     // do stuff here 执行。但是,如果它有' class2'和/或' class3',它返回false和     // do stuff here 不执行。

我用它来解决这个问题:

if (element.classList.contains('class1') || element.classList.contains('class2') || element.classList.contains('class3')) {
  // do stuff here 
}

5 个答案:

答案 0 :(得分:2)

它告诉您作为第一个参数传递的类名是否是元素所属的类之一。

与所有JavaScript函数一样,您可以传递尽可能多的其他参数。 contains函数对它们没有任何作用。

答案 1 :(得分:1)

此功能只接受一个参数。 contains方法用于检查classList是否包含单个元素。您在底部发布的代码块是一个很好的解决方法。但遗憾的是,您在顶层尝试做的事情超出了classList API的范围。

答案 2 :(得分:0)

尝试 .elementByXPath("//android.widget.TextView[@text='headline9']/../android.widget.Button")

HTML:

document.querySelectorAll

的Javascript

<div class="class1"></div>
<!--<div class="class2"></div> -->
<!-- <div class="class3"></div> -->

<div id="result"></div>

演示:https://codepen.io/fatihhayri/pen/weqzWE

答案 3 :(得分:0)

var c = element.classList;
var any = c.contains( 'class1' ) || c.contains( 'class2' ) || c.contains( 'class3' );
var all = c.contains( 'class1' ) && c.contains( 'class2' ) && c.contains( 'class3' );

答案 4 :(得分:0)

它对我来说是这样的:

let elem = document.querySelector("span");

if (elem.classList.contains('beta')) {
elem.textContent = "The classList contains 'beta'";
} else {
elem.textContent = "The classList does not contain 'beta'";
}
<span class="alpha beta gamma"></span>