jQuery对表格的操作

1.表格变色

(1)普通的隔行变色

CSS代码:

.even{background:#fff;}   //偶数行样式

.even{background:#fff;}   //奇数行样式

①包括表头

$(function(){
        $("tr:odd").addClass("odd");
        $("tr:even").addClass("even");
})

②不包括表头

$(function(){
        $("tbody>tr:odd").addClass("odd");
        $("tbody>tr:even").addClass("even");
})

③某一行高亮

$("tr:contains('王五')").addClass("selected");
  

 

2.单选框控制表格行高亮,即:单击某一行后,此行被选中高亮显示,且单选框被选中

步骤:给表格添加单击事件,给单击的当前行添加高亮样式,将它的兄弟行的高亮样式去掉,将当前行里的单选框设置为选中

$('tbody>tr').click(function(){
      $(this)
                .addClass('selected')
                .siblings.removeClass('selected')
                .end()
                .find(':radio').attr('checked',true);
}); 

注释:①当前对象是$(this),当进行.addClass('selected')操作时对象未发生变化,当执行.siblings.removeClass('selected')时,对象变为$(this).siblings(),如果需要重新返回到$(this),就要使用end()方法

②如果表格初始化时,默认已经有单选框被选中,默认选中的行要被高亮显示

$('table:radio:checked').parent().parent().addClass('selected');

  

3.复选框控制表格行高亮

复选框能选则多行变色且不限制个数

单击某行时,如果已经高亮,移除高亮样式并去掉当前复选框的选中状态;若没高亮,添加高亮样式并将当前的复选框选中

判断是否已经高亮,使用hasClass()方法

$('tbaody>tr').click(function(){
      if($(this).hasClass('selected')){
            $(this)
                      .removeClass('selected')
                      .find('checkbox').attr('checked',false);
      }else{
             $(this)
                      .addClass('selected')
                      .find('checkbox').attr('checked',true);
      }
});

简化:

$('tbaody>tr').click(function(){
      var hasSelected=$(this).hasClass('selected');
      $(this).[hasSelected?"removeClass":"addClass"]('selected');
                .find('checkbox').attr('checked',! hasSelected);
});

  

4.表格展开关闭

<tr class="parent" id=row_01><td colspan="3">前台设计组</td></tr>
<tr class="child_row_01"><td>张三</td></tr>
<tr class="child_row_02"><td>李四</td></tr>

给分类行设置了class="parent"属性以及id,子行设置了class属性,值在父id值得基础上加child

$(function(){
      $('tr.parent').click(function(){
            $(this)
                     .toggleClass("selected");
                     .siblings('.child_'+this.id).toggle();
      });
});

 

5.表格内容筛选→contains选择器+filter()筛选方法

 

posted @ 2017-08-20 12:15  苯宝宝  阅读(963)  评论(0编辑  收藏  举报