选中复选框后更改标签

我有很多带有复选框的列表,如下所示:

每个复选框都有一个唯一的ID

我想在检查标签时切换标签的背景颜色。

这是我得到的,但它不起作用:

jQuery的:

 $(".filteritem").click(function(){ $(this).toggleClass('highlight'); }); 

CSS:

 .highlight { //change something } 

HTML:

 

JavaScript的:

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

现场演示: http //jsfiddle.net/MGVHX/1/

请注意,我使用事件委托 ,而不是将相同的处理程序绑定到每个复选框。

您当前正在尝试在input元素上调用toggleClass ,而不是label 。 您可以使用parent来获取label

 $(".filteritem").click(function(){ $(this).parent().toggleClass('highlight'); }); 
 $(".filteritem").on('change', function(){ $(this).closest('label').toggleClass('highlight'); }); 

小提琴