1

这就是我得到的:

http://jsfiddle.net/HsVZR/

我希望完成的是当您开始突出显示 td 的红色时,我想自动选中右侧的复选框。

因此,当 tr >= 1 .highlightRed 时,它应该自动选中复选框。如果它变为 == 0,则应取消选中该复选框。

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

需要做的两件事是正确的 if 语句,因此它计算当前 parent 中的 .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 回答