如果选中单选按钮,则jQuery addClass

时间:2011-11-01 22:46:23

标签: jquery radio-button parent checked

任何人都可以帮我解决这个问题吗?

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

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

感谢大家的帮助。

更新:这是表单的HTML。我只复制了48个中的3个div。正如你猜测的那样,如果在页面加载时已经检查了单选按钮,我试图在问题框中添加一个类。到目前为止没有运气。

<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 个答案:

答案 0 :(得分:2)

尝试类似

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

答案 1 :(得分:2)

我认为$(this)并不是指您案例中的无线电按钮

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

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

答案 2 :(得分:2)

您使用的this位于ready处理程序回调的函数上下文中,因此它没有像您预期的那样指向input.check

尝试这样的事情:

$(document).ready(function() {

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

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

});

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

答案 3 :(得分:2)

这样可行。

$(document).ready(function() {

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

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