jQuery操作表格(table)的常用方法、技巧汇总


Posted in Javascript onApril 12, 2014

以下列出13个jQuery操作table常用到的功能:

1.鼠标移动行变色

$('#table1 tr').hover(function(){
    $(this).children('td').addClass('hover')
}, function(){
    $(this).children('td').removeClass('hover')
});

方法二:
$("#table1 tr:gt(0)").hover(function() { 
    $(this).children("td").addClass("hover"); 
}, function() { 
    $(this).children("td").removeClass("hover"); 
});

2.奇偶行不同颜色

$('#table1 tbody tr:odd').css('background-color', '#bbf');
$('#table1 tbody tr:even').css('background-color','#ffc');
//操作class
$("#table1 tbody tr:odd").addClass("odd");
$("#table1 tbody tr:even").addClass("even");

3.隐藏一行
$('#table1 tbody tr:eq(3)').hide();
$("#table1 tr td::nth-child(3)").hide();
$("#table1 tr").each(function(){$("td:eq(3)",this).hide()});

4.隐藏一列
$('#table1 tr td::nth-child(3)').hide();

5.删除一行
// 删除除第一行外的所有行
$('#table1 tr:not(:first)').remove();
// 删除指定行
$('#table1 tr:eq(3)').remove();

6.删除一列
// 删除除第一列外的所有列
$('#table1 tr th:not(:nth-child(1))').remove();
$('#table1 tr td:not(:nth-child(1))').remove();
// 删除第一列
$('#table1 tr td::nth-child(1)').remove();

7.得到(设置)某个单元格的值
// 设置table1,第2个tr的第一个td的值。  
$('#table1 tr:eq(1) td:nth-child(1)').html('value'); 
// 获取table1,第2个tr的第一个td的值。
$('#table1 tr:eq(1) td:nth-child(1)').html();

8.插入一行
// 在第二个tr后插入一行
$('<tr><td>插入3</td><td>插入</td><td>插入</td><td>插入</td></tr>').insertAfter($('#table7 tr:eq(1)'));

9.获取每一行指定的单元格的值
var arr = [];
$('#table1 tr td:nth-child(1)').each(function (key, value) {
   arr.push($(this).html());
});
var result = arr.join(',');

10.全选或全不选
//方法零:
$('#all').on('click', function () {
    $('input.checkSub').prop('checked', this.checked); // 给当前一起绑定的子选择添加效果
});
//方法一:
//全选或全不选 此传入的参数为event 如:checkAll(event)
function checkAll(evt){
 evt=evt?evt:window.event;
 var chall=evt.target?evt.target:evt.srcElement;
 var tbl=$("#table1");
 var trlist=tbl.find("tr");
 for(var i=1;i<trlist.length;i++){
  var tr=$(trlist[i]);
  var input=tr.find("INPUT[type='checkbox']");
  input.attr("checked",chall.checked);
 }
}
//方法二:
//全选或全不选 此传入的参数为this 如:checkAll(this)
function checkAll(evt){
 var tbl=$("#table1");
 var trlist=tbl.find("tr");
 for(var i=1;i<trlist.length;i++){
  var tr=$(trlist[i]);
  var input=tr.find("INPUT[type='checkbox']");
  input.attr("checked",evt.checked);
 }
}
//方法三:
//全选或全不选 此传入的参数为this 如:checkAll(this)
function checkAll(evt){
    $("#table1 tr").find("input[type='checkbox']").each(function(i){
     $(this).attr("checked",evt.checked)
    });
}
//方法四:
//全选或全不选 此传入的参数为this 如:checkAll(this)
function checkAll(evt){
    $("#table1 tr").find("input[type='checkbox']").attr("checked",evt.checked);
}

11.客户端动态添加行
function btnAddRow(){
    //行号是从0开始,最后一行是新增、删除、保存按钮行 故减去2
    var rownum=$("#table1 tr").length-2;
    var chk="<input type='checkbox' id='chk_"+rownum+"' name='chk_"+rownum+"'/>";
    var text="<input type='text' id='txt_"+rownum+"' name='txt_"+rownum+"' width='75px'/>";
    var sel="<select id='sel_"+rownum+"'><option value='1'>男</option><option value='0'>女</option></select>";
    var row="<tr><td>"+chk+"</td><td>"+text+"</td><td>"+sel+"</td><td>"+text+"</td><td>"+text+"</td></tr>";
    $(row).insertAfter($("#table1 tr:eq("+rownum+")"));   
}

12.客户端删除一行
每次只能删除一行,删除多行时出错
function btnDeleteRow(){
   $("#table1 tr").find("input[type='checkbox']").each(function(i){
    if($(this).attr("checked")){ 
     if(i!=0){//不能删除行标题       
     $("#table1 tr:eq("+i+")").remove();
     }
    }
   });
}
这个比上面的要好,可以一下删除多个记录
function btnDeleteRow(){
   $("#table1 tr").each(function(i){
       var chk=$(this).find("input[type='checkbox']");
       if(chk.attr("id")!="checkall"){//不能删除标题行       
     if(chk.attr("checked")){
     $(this).remove();
     }
       }
    });
}

13.客户端保存
function btnSaveClick(){
   //find()方法中我暂时不知道如何设定多个筛选条件,所以下面得不到select列表的值
   //$("#table1 tr td").find("input[type='text']" || "select").each(function(i){
   //alert($(this).val());
   //});             
   $("#table1 tr").find("td").each(function(i){
      if($(this).find("input[type='text']").length>0){
          alert($(this).find("input[type='text']").val());
      }else if($(this).find("select").length>0)
      {
          alert($(this).find("select").val());
      }
    });
}
Javascript 相关文章推荐
JS 拼图游戏 面向对象,注释完整。
Jun 18 Javascript
JQUERY对单选框(radio)操作的小例子
Apr 25 Javascript
jQuery支持动态参数将函数绑定到事件上的方法
Mar 17 Javascript
Javascript中的作用域和上下文深入理解
Jul 03 Javascript
Sort()函数的多种用法
Mar 20 Javascript
动态更新highcharts数据的实现方法
May 28 Javascript
火狐和ie下获取javascript 获取event的方法(推荐)
Nov 26 Javascript
JavaScript实现学生在线做题计时器功能
Dec 05 Javascript
Javascript三种字符串连接方式及性能比较
May 28 Javascript
微信小程序激励式视频广告组件使用详解
Dec 06 Javascript
vue-simple-uploader上传成功之后的response获取代码
Sep 07 Javascript
解决vue props传Array/Object类型值,子组件报错的情况
Nov 07 Javascript
JS获取URL中参数值(QueryString)的4种方法分享
Apr 12 #Javascript
javascript对JSON数据排序的3个例子
Apr 12 #Javascript
Js保留小数点的4种效果实现代码分享
Apr 12 #Javascript
JS判断客户端是手机还是PC的2个代码
Apr 12 #Javascript
javascript window.open打开新窗口后无法再次打开该窗口问题的解决方法
Apr 12 #Javascript
jQuery中阻止冒泡事件的方法介绍
Apr 12 #Javascript
jquery ajax应用中iframe自适应高度问题解决方法
Apr 12 #Javascript
You might like
php json_encode值中大括号与花括号区别
2013/09/30 PHP
理解PHP中的stdClass类
2014/04/18 PHP
PHP与jquery实时显示网站在线人数实例详解
2016/12/02 PHP
php实现微信分享朋友链接功能
2019/02/18 PHP
php如何把表单内容提交到数据库
2019/07/08 PHP
jquery last-child 列表最后一项的样式
2010/01/22 Javascript
JQuery里选择超链接的实现代码
2011/05/22 Javascript
angularjs指令中的compile与link函数详解
2014/12/06 Javascript
基于zepto.js实现仿手机QQ空间的大图查看组件ImageView.js详解
2015/03/05 Javascript
js显示文本框提示文字的方法
2015/05/07 Javascript
浅谈JavaScript的内置对象和浏览器对象
2016/06/03 Javascript
jQuery EasyUI中的日期控件DateBox修改方法
2016/11/09 Javascript
angular6根据environments配置文件更改开发所需要的环境的方法
2019/03/06 Javascript
Vue+Element实现网页版个人简历系统(推荐)
2019/12/31 Javascript
vue使用transition组件动画效果的实例代码
2021/01/28 Vue.js
使用python实现strcmp函数功能示例
2014/03/25 Python
Python实现的简单hangman游戏实例
2015/06/28 Python
Python中的os.path路径模块中的操作方法总结
2016/07/07 Python
多个应用共存的Django配置方法
2018/05/30 Python
深入了解Python在HDA中的应用
2019/09/05 Python
pymysql的简单封装代码实例
2020/01/08 Python
Python实现实时数据采集新型冠状病毒数据实例
2020/02/04 Python
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
2020/03/20 Python
Python环境下安装PyGame和PyOpenGL的方法
2020/03/25 Python
python3通过udp实现组播数据的发送和接收操作
2020/05/05 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
2020/06/02 Python
使用CSS3来代替JS实现交互
2017/08/10 HTML / CSS
自荐信的五个重要部分
2013/10/29 职场文书
综合办公室主任职责
2013/12/16 职场文书
医院护士的求职信范文
2013/12/26 职场文书
电厂厂长岗位职责
2014/01/02 职场文书
《一个中国孩子的呼声》教学反思
2014/02/12 职场文书
工作鉴定评语
2014/05/04 职场文书
优秀党员申报材料
2014/12/18 职场文书
2021年最新用于图像处理的Python库总结
2021/06/15 Python
Vue3中的Refs和Ref详情
2021/11/11 Vue.js