如何在 HTML 的 JavaScript 中测试元素是否包含某个类?


在 JavaScript 中,我们可以检查 HTML 文档中的 HTML 元素是否包含特定的类。在网页开发过程中,开发者会使用许多类,有时会为不同的元素分配相似的类,这些元素在 CSS 中需要相同的样式。在这个过程中,开发者可能会忘记赋予特定元素的类,那么开发者可能需要使用 JavaScript 检查元素内部的类。在本教程中,我们将讨论如何测试 JavaScript 中的元素是否包含类。

要检查类,我们可以使用元素的 `classList` 属性的 `contains()` 方法。

让我们详细讨论一下 `contains()` 方法:

使用 contains() 方法

`contains()` 是元素 `classList` 属性的一个方法,该属性包含目标元素包含的所有类的列表,要检查列表中是否存在特定类,可以使用 `contains()` 方法,该方法将类名作为字符串参数,并返回 `boolean` 值。如果元素包含传递的类名,则返回 `true`,否则返回 `false`。

语法

以下是用于在 `classList` 属性上实现 `contains()` 方法的语法:

var var_name = targetedElement.classList.contains("className");

在此语法中,我们在元素上使用了 `classList`,然后通过将其传递到 `contains()` 方法中来检查特定类,以查看目标元素是否包含它。

让我们通过在代码示例中实际实现它来理解它:

算法

  • **步骤 1** - 在第一步中,我们将定义一个 HTML 元素,并在其中赋予特定的类。

  • **步骤 2** - 在下一步中,我们将通过其 ID 获取目标元素,然后在其上使用 `classList` 属性和 `contains()` 方法。

  • **步骤 3** - 在最后一步中,我们将定义一个 JavaScript 函数,该函数将在点击按钮时被调用,并且包含在用户屏幕上显示输出的逻辑。

示例 1

下面的示例将说明如何使用 `contains()` 方法来检查元素是否包含类:

<!DOCTYPE html>
<html>
<body>
   <h2>Testing if an element contains class in JavaScript in HTML</h2>
   <p id="result" class="myClass">We will check the class for this element. </p>
   <button onclick="display()">click to check the class</button>
   <script>
      var myElement = document.getElementById("result");
      var classTest = myElement.classList.contains("myClass");
      function display() {
         if (classTest) {
            myElement.innerHTML = "<b>Yes, the grabbed element contains the specified class</b>";
         } else {
            myElement.innerHTML = "<b>No, the grabbed element does not contains the specified class</b>"
         }
      }
   </script>
</body>
</html>

在上面的示例中,我们在目标元素上使用了 `classList` 属性的 `contains()` 方法,并将类名作为字符串传递给该方法,以检查元素是否包含它。

让我们讨论另一个示例,我们将检查当目标元素包含多个类时 `contains()` 方法的行为。

在这个示例的算法中,我们只需要在定义的元素中添加多个类,其余部分与之前的示例相同。

示例 2

下面的示例将显示如果元素包含多个类,`contains()` 方法的行为:

<!DOCTYPE html>
<html>
<body>
   <h2>Testing if an element contains class in JavaScript in HTML </h2>
   <p id="result" class="myClass class1 class2">We will check the class for this element. </p>
   <button onclick="display()">click to check the class</button>
   <script>
      var myElement = document.getElementById("result");
      var classTest = myElement.classList.contains("myClass");
      function display() {
         if (classTest) {
            myElement.innerHTML = "<b>Yes, the grabbed element contains the specified class</b>";
         } else {
            myElement.innerHTML = "<b>No, the grabbed element does not contains the specified class</b>"
         }
      }
   </script>
</body>
</html>

在这个示例中,我们定义了包含多个类的 HTML 元素,然后使用与上一个示例中相同的逻辑来检查元素是否包含该类。我们可以清楚地看到,两个示例的输出相同,这意味着 `contains()` 方法也可以检查元素是否包含特定类,即使该元素包含多个类。

在本教程中,我们讨论了元素 `classList` 属性的 `contains()` 方法,用于测试 JavaScript 中的元素是否包含该类。我们通过结合每个场景的代码示例,在不同的场景中讨论了此方法的行为,其中元素包含多个类以及单个类。

更新于:2022年11月25日

9K+ 次浏览

启动你的职业生涯

通过完成课程获得认证

开始学习
广告