如果单选按钮被选中,则添加addClass



谁能帮我解决这个问题?

$(document).ready(function() {
    if(
        $("input.check").is(":checked")){
            $(this).parent().addClass("question-box-active");
    }
});

我试图添加一个类(question-box-active)的父。check(一个单选按钮)只有当它被选中。如果我使用警报进行测试,它可以正常工作,但我无法添加那个类。

谢谢大家的帮助。

Update:这是表单的HTML。我只抄了48条中的3条。正如你可能已经猜到,我试图添加一个类的问题框,如果单选按钮已经在页面加载选中。到目前为止还没有。

<div class="question-box">
    <input class="check" type="checkbox" name="question-1" value="1" <?php if(isset($_POST['question-1'])) echo "checked"; ?> />
    <span class="question">1. Save a rainforest or grow organic vegetables</span>
</div>
<div class="question-box alt">
    <input class="check" type="checkbox" name="question-2" value="1" <?php if(isset($_POST['question-2'])) echo "checked"; ?> />
    <span class="question">2. Solve complicated math problems</span>
</div>
<div class="question-box">
    <input class="check" type="checkbox" name="question-3" value="1" <?php if(isset($_POST['question-3'])) echo "checked"; ?> />
    <span class="question">3. Act in a movie, play, or television show</span>
</div>

试试

$('input.check').is(':checked').each(function() { 
    $(this).parent().addClass('question-box-active');
});

我认为$(this)在您的情况下不是指单选按钮

你可以绑定单选按钮的click事件,并决定从那里做什么…

$(document).ready(function(){
    $("input.check").click(function(){
        if($(this).is(":checked")){
            $(this).parent().addClass("question-box-active");
        }
    });
});

您正在使用的this是在ready处理程序回调的函数上下文中,所以它不是指向input.check如您所期望的。

试试这样:

$(document).ready(function() {
    var foo = $('input.check');
    if ( foo.is(':checked') ) {
        foo.parent().addClass('question-box-active');
    }
});

假设你的代码逻辑是正确的。然而,我猜想您正在尝试做与Doug在另一个答案中提供的类似的事情。张贴一些HTML可能有助于澄清。

可以。

$(document).ready(function() {
    var foo = $('input.check:checked');
    if ( foo.is(':checked') ) {
        foo.parent().addClass('question-box-active');
    }
});

最新更新