Javascript 在元素上切换类

标签 javascript jquery html

假设我有这个 HTML 结构

<div class="sType_click">
    <div class="Switcher">
      <span class="customText">Custom text</span>
    </div>
</div>

<div class="sType_click">
    <div class="Switcher">
      <span class="customText">Custom text</span>
    </div>
</div>

<div class="sType_click">
    <div class="Switcher">
      <span class="customText">Custom text</span>
    </div>
</div>

如何使用 JavaScript 在 sType_click div 上使用 customText span 切换类,但不将其添加到其他 sType_click div 上?

例如,如果我单击 customText 类之一,我想在其父 sType_click div 上切换类,而不添加任何其他类。

我目前使用这个

var sType_click = document.querySelector(".sType_click"),
customText = document.querySelector(".customText"),
if (null !== document.querySelector(".customText")) {
    customText.onclick = function() {
        sType_click.classList.toggle("sOpen");
    };
}

但这会切换页面上的所有 sType_click div 我对 jQuery 没意见,但我更喜欢纯 JavaScript, 提前致谢。

最佳答案

或者你可以用 jquery 使它变得更容易:

$('.fw_customText').on('click', function() {
     $(this).closest(".sType_click").toggleClass("sOpen");
});
.sOpen{
   background-color:green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="sType_click">
        <div class="Switcher">
      <span class="fw_customText">Custom text</span>
    </div>
</div>

<div class="sType_click">
        <div class="Switcher">
      <span class="fw_customText">Custom text</span>
    </div>
</div>

<div class="sType_click">
        <div class="Switcher">
      <span class="fw_customText">Custom text</span>
    </div>
</div>

关于Javascript 在元素上切换类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44348912/

相关文章:

javascript - 数组相等/不等

javascript - 如何在 Ionic Version 1 应用程序中使用 Webpack? (是否可能/是否有其他选择?)

javascript - 从文本中解析坐标

html - 水平滚动 div 中 float 元素后的空白

javascript - 具有 "asc"和 "desc"的多列排序的数据表

javascript - 如何获取选中的动态复选框的值

c# - 如何停止文本框上的CSS类

jquery - img错误事件未按预期运行

html - 图像始终在 Angular JS View 中挂起

java - 使用 HTML/JavaScript 创建具有非图像输出的交互式序列图