2

谁能帮我解决这个问题?

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

我正在尝试将一个类(问题框活动)添加到 .check (单选按钮)的父级,前提是它被选中。如果我使用警报进行测试,它可以正常工作,但我无法添加该类。

谢谢大家的帮助。

更新:这是表单的 HTML。我只复制了 48 个 div 中的 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>
4

4 回答 4

2

尝试类似的东西

$('input.check').is(':checked').each(function() { 
    $(this).parent().addClass('question-box-active');
});
于 2011-11-01T22:51:14.520 回答
2

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

您可以绑定单选按钮的单击事件并决定从那里做什么......

$(document).ready(function(){
    $("input.check").click(function(){
        if($(this).is(":checked")){
            $(this).parent().addClass("question-box-active");
        }
    });
});
于 2011-11-01T22:52:32.720 回答
2

您正在使用的this是在处理程序回调的函数上下文中,所以它没有像您预期ready的那样指向。input.check

尝试这样的事情:

$(document).ready(function() {

    var foo = $('input.check');

    if ( foo.is(':checked') ) {
        foo.parent().addClass('question-box-active');
    }

});

这是假设您的代码逻辑是正确的。但是,我假设您正在尝试做与 Doug 在另一个答案中提供的类似的事情。发布一些 HTML 可能有助于澄清。

于 2011-11-01T22:52:59.310 回答
2

这将起作用。

$(document).ready(function() {

    var foo = $('input.check:checked');

    if ( foo.is(':checked') ) {
        foo.parent().addClass('question-box-active');
    }
});
于 2013-04-02T23:28:23.007 回答