繁体   English   中英

何时将复选框元素的选中属性添加到DOM?

[英]when is checked attribute of check box element added to DOM?


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

<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

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

为了完整性,这是当前的支持:( 来自MDN

Chrome  Firefox (Gecko)       Internet Explorer  Opera  Safari
1.0     1.0 (1.7 or earlier)  9.0                9.0    3.1

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM