2014-03-19 42 views
-1

我有几个表格。我试图通过jQuery添加一个类到表中的所有行,当我按链接所有。我怎样才能做到这一点,而无需在表中添加类和id。现在类添加到每个表中的所有行,当我点击任何表中的链接“全部”。我不知道如何选择拥有链接“全部”的表。jQuery更改表格行的背景颜色

Here's a fiddle我在想什么。

$(function(){ 
    $('.table tbody input[type=checkbox]').change(function() { 
     $(this).closest('table tbody tr').toggleClass("np-tr-selected", this.checked); 
    }); 
    $(".all").click(function(){ 
     $('table tbody tr').addClass("np-tr-selected"); 
    }); 
}) 
+0

当您单击全部,你也想的复选框被选中,或只是背景改变颜色? – j08691

+0

这个问题只是关于背景 – user3127896

回答

1

你可以这样做是这样的:

$(".all").click(function(){ 
    $('tbody tr', $(this).closest('table')).addClass("np-tr-selected"); 
}); 

小提琴:http://jsfiddle.net/Wy22s/24/

1

您可以使用下面的代码片段:

DEMO jsFiddle

$(function(){ 
    $('.table tbody input[type=checkbox]').change(function() { 
     $(this).closest('tr').toggleClass("np-tr-selected", this.checked); 
    }); 
    $(".all").click(function(){ 
     $(this).closest('table').find('tbody tr').addClass("np-tr-selected").find(':checkbox').prop('checked', true); 
    }); 
}) 
1

你将添加类表中,不是所有的行,这样做的方法是从$开始(这)然后根据你的html需要多次上传到.parent(),直到你点击表格元素。

<table class="hitme"> 
    <tbody> 
    <tr> 
    <td><input type="checkbox" class="someclass" name="somename"> 

需要像

$('.somename').on('click', function(){ 
    $(this).parent().parent().parent().parent().addClass('someotherclass'); 
    }) 
+0

'$(this).closest('table')'真的更好 –

+0

是的,当时没来找我:D – alou

1

如果你想改变背景颜色,并检查复选框单击所有,使用时:

$(function(){ 
    $('.table tbody input[type=checkbox]').change(function() { 
     $(this).closest('table tbody tr').toggleClass("np-tr-selected", this.checked); 
    }); 
    $(".all").click(function(){ 
     $(this).closest('table').find('tr:gt(0)').addClass("np-tr-selected").find('input').prop('checked', true); 
    }); 
}) 

jsFiddle example

如果您不需要担心复选框,清除.find('input').prop('checked', true);