当前位置: 首页 > 知识库问答 >
问题:

如何在jQuery中检查任何元素是否有类?

欧阳俊晖
2023-03-14

null

$(".Button").click(function (e) { 
    e.preventDefault();
    if (!$(this).hasClass("buttonActive")) {
        $(this).addClass("buttonActive");
    } else {
        $(this).removeClass("buttonActive");
    }
});
.buttonActive {
    background: #100f10;
    color: white;   
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="numberSelect">
  <button type="button" value="1" class="Button">1</button>
  <button type="button" value="2" class="Button">2</button>
  <button type="button" value="3" class="Button">3</button>
  <button type="button" value="4" class="Button">4</button>
  <input type="hidden" name="number" id="number">
</div>

null

我想做的是,当我点击任何按钮时,它检查是否有任何其他按钮具有类“ButtonActive”,如果任何其他按钮具有这个类,它就从另一个按钮中移除这个类,并将它添加到我点击的按钮中。因此它应该始终是一个具有“ButtonActive”类的按钮。

共有2个答案

索曾琪
2023-03-14

不必通过if{...}条件检查类的存在性。这可以在jquery选择器本身中完成。移除类只会影响包含该类的那些选择器,而不会影响当前(this)选择器:

...(".Button.buttonActive").not(this).removeClass("buttonActive");

你的问题有几种不同的解决方案。但我想提供一个解决方案在一行,无条件,如果。

null

$(".Button").click(function (e) {
    e.preventDefault();
    $(this).addClass("buttonActive").closest("#numberSelect").find(".Button.buttonActive").not(this).removeClass("buttonActive");
});
.buttonActive {
    background: #100f10;
    color: white;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="numberSelect">
    <button type="button" value="1" class="Button">1</button>
    <button type="button" value="2" class="Button">2</button>
    <button type="button" value="3" class="Button">3</button>
    <button type="button" value="4" class="Button">4</button>
    <input type="hidden" name="number" id="number" />
</div>
董小林
2023-03-14

您必须首先从所有按钮中删除该类,然后将其添加到单击的按钮中,如下所示:

null

$(".Button").click(function (e) { 
    e.preventDefault();
    if (!$(this).hasClass("buttonActive")) {
        $("button").removeClass("buttonActive");
        $(this).addClass("buttonActive");
    }
});
.buttonActive {
    background: #100f10;
    color: white;   
}
html prettyprint-override"><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="numberSelect">
  <button type="button" value="1" class="Button">1</button>
  <button type="button" value="2" class="Button">2</button>
  <button type="button" value="3" class="Button">3</button>
  <button type="button" value="4" class="Button">4</button>
  <input type="hidden" name="number" id="number">
</div>
 类似资料:
  • 问题内容: 是否有可能切换元素的可见性,使用功能,或? 你会如何测试一个元素是否还是? 问题答案: 由于问题涉及单个元素,因此此代码可能更合适: 与twernt的建议相同,但适用于单个元素。它与jQueryFAQ中推荐的算法匹配 我们使用jQueryis()与另一个元素,选择器或任何jQuery对象一起检查选定的元素。此方法遍历DOM元素以找到匹配项,该匹配项满足传递的参数。如果存在匹配项,则返回

  • 问题内容: 在Swift中,如何检查数组中是否存在元素?Xcode没有针对,,或的任何建议,并且快速搜索本书不会发现任何结果。知道如何检查吗?我知道有一种方法可以返回索引号,但是有没有一种方法可以返回像ruby一样的布尔值? 我需要的示例: 问题答案: 斯威夫特2、3、4、5: 是(用于元素序列的) 协议扩展方法 ,而不是早期版本中的全局方法。 备注: 该方法要求序列元素采用协议。 如果序列元素是

  • 在Swift中,如何检查数组中是否存在元素?Xcode没有关于、或的任何建议,并且在这本书中快速搜索没有任何结果。知道怎么查这个吗?我知道有一个方法返回索引号,但是有没有一个方法像Ruby的那样返回一个布尔值? 我需要的示例:

  • 本文向大家介绍如何检查jQuery中的元素上是否存在事件?,包括了如何检查jQuery中的元素上是否存在事件?的使用技巧和注意事项,需要的朋友参考一下 要检查jQuery中元素上是否存在事件,请检查元素上是否存在现有事件。  在这里,我设置了div- 当您单击div时,警报将生成使用div ID设置的警报: 您可以尝试运行以下代码来检查事件是否存在- 示例

  • 问题内容: 我有一个div: 有什么方法可以检查某些元素: 具有特定的类(在我的情况下为“测试”)。 或者,是否有方法检查en元素是否具有某种样式?在此示例中,我想知道元素是否具有“ ”。 非常感谢你! 问题答案:

  • 问题内容: 我试图仅使用jQuery在HTML元素为空的情况下调用函数。 像这样: 问题答案: 编辑: 正如某些人指出的那样,浏览器对空元素的解释可能会有所不同。如果您想忽略不可见的元素(例如空格和换行符)并使实现更加一致,则可以创建一个函数(或仅使用其中的代码)。 您也可以将其放入jQuery插件,但是您知道了。