1

これは私が得たものです:

http://jsfiddle.net/HsVZR/

私が達成したいのは、tdの赤を強調表示し始めたら、右側のチェックボックスを自動的にチェックしたいと思います。

したがって、trに> = 1 .highlightRedがある場合、チェックボックスを自動的にチェックする必要があります。== 0になる場合は、チェックボックスをオフにする必要があります。

http://jsfiddle.net/HsVZR/2/

実行する必要がある2つのことは、正しいifステートメントであり、現在の親の.highlightRedをカウントし、チェック/チェックを外します<-チェックボックスを選択する方法がわかりません。試してみました。

$(this).parent('tr').child('td').find('.removalbox').attr('checked');
4

3 に答える 3

1

これはあなたが探していることをするはずです:

        $(document).ready(function(){
            $('td.editable').live('click', function(){
                $(this).toggleClass('highlightRed');

                if( $(this).parent('tr').find('.highlightRed').length >= 1 )
                {
                    $(this).parent('tr').find('.removalbox').attr('checked','checked');
                }else{
                    $(this).parent('tr').find('.removalbox').removeAttr('checked');
                }


            });
        }); ​
于 2012-08-10T02:28:01.860 に答える
1

このようなものが欲しいですか?http://jsfiddle.net/HsVZR/15/

$(this).parent('tr').find(".removalbox").attr("checked", $(this).parent('tr').find('td.highlightRed').length >= 1);

また、ページ上の要素を見つけるためにそれほど長いjQueryステートメントを使用するべきではありません。適切なクラス名またはIDをブロックごとに要素に割り当てます—いつでも簡単にそれらにアクセスできます$('myblock-properclass')

チェックボックスのオン/オフは、次の方法で簡単に実行できます。

$('.removalbox').live('click', function()
{ 
    this.checked == true ? $(this).parents('tr').find('td.editable').addClass('highlightRed') : $(this).parents('tr').find('td.editable').removeClass('highlightRed');       
});
于 2012-08-10T02:30:37.140 に答える
1

試す:

$(document).ready(function() {
    $('td.editable').live('click', function() {
        $(this).toggleClass('highlightRed');
        $(this).parent('tr').find('.removalbox').attr('checked',$(this).parent().find('td.highlightRed').length >0);
    });
});​

ちなみに、.live()は廃止され、.on()が採用されました。

jsFiddleの例

于 2012-08-10T02:31:25.163 に答える