如果条件为true,如何将类添加到jQuery元素,如果条件为false,则删除相同的类?

Ars*_*eny 11 javascript jquery

有没有更短的方法来做到以下几点?

var select_all_checkbox = $("input.select_all");
var is_checked = select_all_checkbox.prop("checked");

if (is_checked) {
    select_all_checkbox.parent().addClass("selected");
} else {
    select_all_checkbox.parent().removeClass("selected");
}
Run Code Online (Sandbox Code Playgroud)

Fel*_*ing 30

使用toggleClass,传递第二个参数(布尔值),指定是否应该添加类:

select_all_checkbox.parent().toggleClass("selected", is_checked);
Run Code Online (Sandbox Code Playgroud)

如果您选择了多个元素input.select_all,则必须迭代它们:

$("input.select_all").each(function() {
    $(this).parent().toggleClass('selected', this.checked);
});
Run Code Online (Sandbox Code Playgroud)

  • @aruseni:也许我不够清楚:如果你把状态作为第二个参数传递,它是`true`,`toggleClass`将添加类.如果状态为"false",则"toggleValue"将删除类.当状态为"false"时,状态为"true"和"removeClass",这与**调用`addClass`完全相同.当状态作为第二个参数传递时,`toggleClass`**不会交替切换类. (2认同)
  • 哇.实际上,你是对的,它确实按预期工作.非常感谢你! (2认同)