如果选中复选框添加类的父元素(if checkbox checked add class to pa

2019-07-18 13:20发布

我有一个复选框看起来像这样的表:

<td class="table-col" >
  <div class="group-one" >
    <input type="checkbox"  />
  </div>
</td>

当复选框被选中以应用“选择”类“表山坳”我想要做的是。

if ($('.table-col').find(':checked')) {
    $(this).parent().parent().addClass('selected');
}

我看了很多帖子有像上面类似的解决方案,但它似乎并没有为我工作。 我不知道为什么,但这个是指向不HTMLDocument的元素。

(编辑),在这个页面上会有标记复选框,那些想“选择”申请。 在评论@cimmanon提到的事件处理。 我需要看这件事。 感谢您的答案呢!

(编辑)

<td class="table-col">
<div class="group-one">
    <input type="checkbox" checked="checked"/>
</div>
</td>

所以pageloads后会有标记的盒子(我认为他们将始终包含检查=“检查” -不知道)复选框。 这些都是需要一个新的风格的人。 没有必要对他们点击和应用的风格,但非常酷仍然之间的相互作用。

Answer 1:

试试这个...

$(":checkbox").on('click', function(){
     $(this).parent().toggleClass("checked");
});

问候。



Answer 2:

您可以使用.change()绑定到change事件; 然后,使用.closest().toggleClass()添加或删除的selected从祖父母元件类名。

$("input:checkbox").change(function(){
  $(this).closest(".table-col").toggleClass('selected', this.checked);
});

看到它在这里。



Answer 3:

给你的复选框名称,以便jQuery的可以钩到它:

$('input[name=foo]').is(':checked')


Answer 4:

$(这)将仅涉及您的复选框(以便你可以去到它的祖父母,按您的代码),当你有它分配给checkbox元素@cimmanon暗示调用的事件处理程序是。

所以,如果你分配.change()处理程序到你的复选框,$(这)将参考您的复选框。 实际上,你可以做到这一点的一条线,因为你可能需要打开或关闭的“选择”类:

    $(":checkbox").change(function () {
    $(this).parent().parent().toggleClass('selected');
         });

否则,$(这)是指如果你是在响应执行这个代码按钮单击处理程序引发事件,例如控制,$(这)将引用按钮。



文章来源: if checkbox checked add class to parent element