jQuery操作Table技巧大汇总


Posted in Javascript onJanuary 23, 2016

本文汇总了jQuery操作Table的技巧。分享给大家供大家参考,具体如下:

1.鼠标移动行变色

方法一:jQuery中的hover(fun(),fun())方法,参数一:第一个方法是添加样式功能,参数二:第二个方法是取消样式功能

$("#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");
$("#table1 tbody tr:odd").addClass("odd")
$("#table1 tbody tr:even").addClass("even")

3.隐藏一行

$("#table1 tbody tr:eq(3)").hide();

4.隐藏一列

方法一:

$("#table1 tr td::nth-child(3)").hide();

方法二:
$("#table1 tr").each(function(){$("td:eq(3)",this).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、全选或全不选

//方法一:
//全选或全不选 此传入的参数为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+")"));
}
//客户端删除一行
//每次只能删除一行,删除多行时出错
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();
}
}
});
}
//客户端保存
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());
}
});
}
<style type="text/css">
.hover
{
  background-color:red;
}
</style>
<table id="table1" border="1" cellpadding="0" cellspacing="0">
<tr>
<th>
<input type="checkbox" id="checkall" onclick="checkAll1(this)"/>
</th>
<th>姓名</th>
<th>性别</th>
<th>密码</th>
<th>地址</th>
</tr>
<tr>
<td>
<input type="checkbox" id="Checkbox1" />
</td>
<td>张三</td>
<td>男</td>
<td>zhangsan</td>
<td>上海</td>
</tr>
<tr>
<td>
<input type="checkbox" id="Checkbox2" />
</td>
<td>李四</td>
<td>男</td>
<td>lisi</td>
<td>安庆</td>
</tr>
<tr>
<td>
<input type="checkbox" id="Checkbox3" />
</td>
<td>王五</td>
<td>男</td>
<td>beijing</td>
<td>北京</td>
</tr>
<tr>
<td>
<input type="checkbox" id="Checkbox4" />
</td>
<td>无名氏</td>
<td>女</td>
<td>wumingshi</td>
<td>上海</td>
</tr>
<tr>
<td>
<input type="checkbox" id="Checkbox5" />
</td>
<td>赵老师</td>
<td>男</td>
<td>zhaolaoshi</td>
<td>浙江</td>
</tr>
<tr>
<td colspan="5" align="center">
<input type="button" id="btnAdd" runat="server" value="新增" onclick="btnAddRow()" />
<input type="button" id="btnDelete" runat="server" value="删除" onclick="btnDeleteRow()" />
<input type="button" id="btnSave" runat="server" value="保存" onclick="btnSaveClick()" />
</td>
</tr>
</table>

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
js脚本学习 比较实用的基础
Sep 07 Javascript
Jquery实现仿腾讯娱乐频道焦点图(幻灯片)特效
Mar 06 Javascript
JavaScript使用cookie记录临时访客信息的方法
Apr 07 Javascript
程序员必知35个jQuery 代码片段
Nov 05 Javascript
Bootstrap按钮下拉菜单组件详解
May 10 Javascript
javascript特殊文本输入框网页特效
Sep 13 Javascript
利用Vue.js实现checkbox的全选反选效果
Jan 18 Javascript
JS跨域请求外部服务器的资源
Feb 06 Javascript
JS和JQuery实现雪花飘落效果
Nov 30 jQuery
jquery实现的简单轮播图功能【适合新手】
Aug 17 jQuery
js的Object.assign用法示例分析
Mar 05 Javascript
微信小程序实现分页加载效果
Nov 19 Javascript
jquery采用oop模式class类的使用示例
Jan 22 #Javascript
jquery日历插件datepicker用法分析
Jan 22 #Javascript
js简单设置与使用cookie的方法
Jan 22 #Javascript
prototype框架中美元符号$用法分析
Jan 22 #Javascript
详解javascript传统方法实现异步校验
Jan 22 #Javascript
jquery.validate提示错误信息位置方法
Jan 22 #Javascript
jQuery ajax时间差导致的变量赋值问题分析
Jan 22 #Javascript
You might like
?算你??的 PHP 程式大小
2006/12/06 PHP
使用phpQuery采集网页的方法
2013/11/13 PHP
Zend Framework教程之模型Model基本规则和使用方法
2016/03/04 PHP
PHP+iframe图片上传实现即时刷新效果
2016/11/18 PHP
javascript之卸载鼠标事件的代码
2007/05/14 Javascript
JavaScript 异步调用框架 (Part 4 - 链式调用)
2009/08/04 Javascript
javascript qq右下角滑出窗口 sheyMsg
2010/03/21 Javascript
关于js中alert弹出窗口文本换行问题简单详细说明
2012/12/11 Javascript
AngularJS语法详解
2015/01/23 Javascript
JS+CSS实现的简单折叠展开多级菜单效果
2015/09/12 Javascript
javascript类型系统 Array对象学习笔记
2016/01/09 Javascript
全面解析JavaScript中“&amp;&amp;”和“||”操作符(总结篇)
2016/07/18 Javascript
canvas知识总结
2017/01/25 Javascript
Bootstrap列表组学习使用
2017/02/09 Javascript
jquery平滑滚动到顶部插件使用详解
2017/05/08 jQuery
20行js代码实现的贪吃蛇小游戏
2017/06/20 Javascript
js指定步长实现单方向匀速运动
2017/07/17 Javascript
详解vuex的简单使用
2018/03/12 Javascript
webpack+react+antd脚手架优化的方法
2018/04/02 Javascript
Vue学习之axios的使用方法实例分析
2020/01/06 Javascript
javascript局部自定义鼠标右键菜单
2020/12/08 Javascript
Python简单生成8位随机密码的方法
2017/05/24 Python
Python利用flask sqlalchemy实现分页效果
2020/08/02 Python
Python命令行解析模块详解
2018/02/01 Python
python中单下划线(_)和双下划线(__)的特殊用法
2019/08/29 Python
Python中无限循环需要什么条件
2020/05/27 Python
python 爬虫爬取京东ps4售卖情况
2020/12/18 Python
Python的scikit-image模块实例讲解
2020/12/30 Python
澳大利亚在线时尚精品店:Hello Molly
2018/02/26 全球购物
德国游戏机商店:Konsolenkost
2019/12/08 全球购物
美国户外烹饪产品购物网站:Outdoor Cooking
2020/01/10 全球购物
考博自荐信
2013/10/25 职场文书
教育学专业毕业生的自我鉴定
2013/11/26 职场文书
单位在职证明范本
2014/01/09 职场文书
怎么用Python识别手势数字
2021/06/07 Python
python基础之//、/与%的区别详解
2022/06/10 Python