2


  我需要将所有选中的复选框涂成绿色,将未选中的复选框涂成红色。

<style>
 input[type=checkbox]+span{
   color:red;
 }
 input[type=checkbox][checked]+span{
    color:green;
 }
</style>
<label>
    <input type="checkbox" class="bike"/>
    <span>I have a bike</span></label>
<label> 
    <input type="checkbox" checked class="car"/>
    <span>I have a car</span>
</label>

  加载页面时看起来不错。但是后来,当用户单击任何复选框时,它们的颜色都没有改变。经过调试,我知道checked当用户单击发生时,属性没有添加到输入标签中。有人可以告诉我原因吗?

我试图checked明确地放置属性,然后效果很好。

<button>Click</button>

    <script>
    $('button').click(function(){
        $('.bike').attr('checked',true);
    });
    </script>

但我不想使用任何脚本来实现这一点。有没有办法让它成为可能?
实际上何时将checked属性添加到复选框以使其选中?这是jsfiddle

4

2 回答 2

5

有一个:checked伪选择器(更新的小提琴

为了完整起见,这是对它的当前支持:(来自 MDN

Chrome  Firefox (Gecko)       Internet Explorer  Opera  Safari
1.0     1.0 (1.7 or earlier)  9.0                9.0    3.1
于 2013-08-06T11:53:56.580 回答
1

这是一个很好的功能,通过使用一些类:

checkbox.on('click', function(){
    $(this).toggleClass('checked');
    if ($(this).hasClass('checked')) {
        $(this).prop("checked", true);
    }
    else {
        $(this).prop("checked", false);
    }
});

对于课程checked,您可以添加一些样式,例如颜色...

于 2013-08-06T11:57:49.357 回答