javascript - 如何添加 css 并选中复选框上的关联跨度?

标签 javascript jquery

我想将类添加到使用以下代码选中的复选框上的关联范围。实际上我想将“text-decoration-line”、“line-through”添加到关联的复选框范围中。

但是现在,当我单击第一个复选框时,CSS 适用于所有范围,如代码所示。

$(document).ready(function() {
  $('input[type=checkbox]').change(function() {
    if (this.checked) {
      $(".label-text").css("text-decoration-line", "line-through");
    } else {
      $(".label-text").css("text-decoration-line", "none");
    }
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="p-3 bg-white">
  <div class="d-flex align-items-center">
    <label>
    <input type="checkbox" class="option-input radio">
    <span class="label-text">Task list and assignments</span>
    </label>
  </div>
  <div class="d-flex align-items-center">
    <label>
    <input type="checkbox" class="option-input radio">
    <span class="label-text">Set due date and assignments</span>
    </label>
  </div>
  <div class="d-flex align-items-center">
    <label>
    <input type="checkbox" class="option-input radio">
    <span class="label-text">Remove duplicate tasks and stories</span>
    </label>
  </div>
  <div class="d-flex align-items-center">
    <label>
    <input type="checkbox" class="option-input radio">
    <span class="label-text">Update the userflow and stories</span>
    </label>
  </div>
  <div class="d-flex align-items-center">
    <label>
    <input type="checkbox" class="option-input radio">
    <span class="label-text">Adjust the components</span>
    </label>
  </div>
</div>

最佳答案

您可以使用.next()要获取下一个元素,问题是您正在对类进行选择,该类将 CSS 应用于所有元素,以下是如何做到这一点:

$(document).ready(function() {
  $('input[type=checkbox]').change(function() {
    $(this).next().css("text-decoration-line", this.checked ? "line-through" : "none" );
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="p-3 bg-white">
  <div class="d-flex align-items-center"><label><input type="checkbox" class="option-input radio"><span class="label-text">Task list and assignments</span></label></div>
  <div class="d-flex align-items-center"><label><input type="checkbox" class="option-input radio"><span class="label-text">Set due date and assignments</span></label></div>
  <div class="d-flex align-items-center"><label><input type="checkbox" class="option-input radio"><span class="label-text">Remove duplicate tasks and stories</span></label></div>
  <div class="d-flex align-items-center"><label><input type="checkbox" class="option-input radio"><span class="label-text">Update the userflow and stories</span></label></div>
  <div class="d-flex align-items-center"><label><input type="checkbox" class="option-input radio"><span class="label-text">Adjust the components</span></label></div>
</div>

关于javascript - 如何添加 css 并选中复选框上的关联跨度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61672078/

相关文章:

javascript - 仅使用 jquery 即可与两个页面进行即时通信,无需服务器

javascript - 在 jQuery 事件处理程序闭包中使用 Ember.js 模型

javascript - BXSlider 在切换幻灯片时暂停 Youtube 视频

javascript - jQuery 获取元素内元素的 ID

javascript - jQuery 和 Prototype 方法相互干扰

c# - 如何从 Web Api 获取自定义错误消息到 jQuery.ajax?

javascript - 为什么这个 jquery.get 函数不起作用?

c# - 在 asp.net + jquery 中实现自动注销 + 警告?

javascript - 有什么好的方法可以防止 jQuery 被重新定义吗?

javascript - 如何推迟 Jasmine SpecRunner 的执行