如果突出显示超过1,则自动选中复选框

时间:2012-08-10 02:19:29

标签: jquery

这就是我得到的:

http://jsfiddle.net/HsVZR/

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

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

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

需要做的两件事是正确的if语句,因此它会计算当前父级中的.highlightRed,因此它会检查/取消选中< - 我不知道如何选中复选框,尝试过:

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

3 个答案:

答案 0 :(得分: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');
                }


            });
        }); ​

答案 1 :(得分: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');       
});

答案 2 :(得分: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 example