(jQuery)基于checked属性的不同结果

时间:2011-07-07 20:10:09

标签: jquery css css-selectors

我想改变某些东西的背景颜色,具体取决于是否检查了它的子项,以及它是否在HTML中具有checked='checked'属性。

基本上,这就是我想要的:

  • 如果默认选中(使用checked='checked')并且用户取消选中,则为红色背景
  • 如果默认选中它,但不再检查(用户未勾选),但用户再次勾选它,绿色背景
  • 如果默认情况下取消选中,并且用户检查它,则为蓝色背景
  • 如果默认情况下取消选中,并且用户检查它然后取消选中它,白色背景......

这是我到目前为止所做的:

    $(document).ready(function(){
        $("#memberForm input").change(function() {
            if($(this).is(":checked") == true ) {
                $(this).closest('dt').css({"background" : "green"});
            }
            else {
                $(this).closest('dt').css({"background" : "red"}); }
        });
    });

我不知道如何在结果中加入默认值...

1 个答案:

答案 0 :(得分:2)

您可以在初始加载时为所有选中的输入添加一个类:

$("input:checked").addClass("waschecked");

然后检查该输入是否有类来判断它是否在初始加载时被检查:

$(this).hasClass("waschecked")