2

誰でもこの問題を解決できますか?

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

チェックされている場合にのみ、クラス (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 に答える