0

http://jsfiddle.net/2Wpfw/16/

これは本当に些細な質問のようですが、私はこれを一生懸命に解決することはできません。

私はこのjQuery変数を持っています...

var $selectArea = $("ul#1 li input[type='checkbox'],
ul#2 li input[type='checkbox'], ul#3 li input[type='checkbox']");

そして私はこれを実行したい...

$selectArea.closest('li').addClass('box-checked');

ただし、$selectArea属性checked"checked"-非常に単純な場合に限りますか?


だから私はこれを試しました...

if ( $selectArea.attr("checked") == "checked" ) {

    $selectArea.closest('li').addClass('box-checked');

}


と...

$selectArea.filter('[checked="checked"]').closest('li').addClass('box-checked');


そしてこれは...(しかし、ここで間違った木を盗聴していると思います)

$selectArea.is('[checked="checked"]').closest('li').addClass('box-checked');



そして、アイデアは素晴らしい感謝です。

http://jsfiddle.net/2Wpfw/16/

4

3 に答える 3

3

これchangeは、チェックボックスのイベント内で実行しているためです。チェックボックスの1つをチェックしてください-クラスが追加されます。

チェックボックスをオンにしたいコードを別の関数にして、簡単に呼び出してonload同じonchange結果を得ることができるようにします。

これが私が何を意味するかを示す更新されたフィドルです。

// reusable function
function check($elem)
{
    $elem.closest('li').toggleClass('box-checked', this.checked)
}

$selectArea.on('change', function() {
    check($(this));
});

$(function(){
    // onload get all checked inputs via the :checked selector 
    check($('input:checked'));
});

</ p>

于 2012-12-06T20:08:56.340 に答える
1

$ selectArea.is(':checked')http://api.jquery.com/checked-selector/を試しましたか

于 2012-12-06T20:09:24.873 に答える
0

これを試して:

$selectArea.each( function(i,e) {
    if ( $(e).is(':checked') ) {    
        $(e).closest('li').addClass('box-checked');
    }
});

あなたがここで見ることができるように:http://jsfiddle.net/darkajax/75kPU/3/

于 2012-12-06T20:17:10.540 に答える