本文实例讲述了jQuery实现的可编辑表格。分享给大家供大家参考,具体如下:
专业从事网站设计、成都做网站,高端网站制作设计,成都微信小程序,网站推广的成都做网站的公司。优秀技术团队竭力真诚服务,采用H5页面制作+CSS3前端渲染技术,响应式网站,让网站在手机、平板、PC、微信下都能呈现。建站过程建立专项小组,与您实时在线互动,随时提供解决方案,畅聊想法和感受。
!DOCTYPE
HTML
PUBLIC
"-//W3C//DTD
HTML
4.01//EN"
""
html
head
meta
http-equiv="Content-Type"
content="text/html;
charset=utf-8"
title可编辑表格/title
script
type
=
"text/javascript"
src="jquery-1.7.2.min.js"/script
style
type
=
"text/css"
body{
background:#c0c0c0;
}
#tab{
border-collapse:collapse;
}
#tab
td{
width:50px;
height:18px;
border:1px
solid;
text-align:center;
}
/style
script
type
=
"text/javascript"
$(function(){
var
tds
=
$("#tab
tr
td");
editeTable(tds);
});
function
editeTable(tds){
tds.click(function(){
var
td=$(this);
var
oldText=td.text();
var
input=$("input
type='text'
value='"+oldText+"'/");
td.html(input);
input.click(function(){
return
false;
});
input.css("border-width","1px");
input.css("font-size","12px");
input.css("text-align","center");
input.css("width","0px");
input.width(td.width());
input.trigger("focus").trigger("select");
input.blur(function(){
td.html(oldText);
});
input.keyup(function(event){
var
keyEvent=event
||
window.event;
var
key=keyEvent.keyCode;
var
input_blur=$(this);
switch(key)
{
case
13:
var
newText=input_blur.val();
td.html(newText);
changeCurrConAttrByTable(currTableId);
break;
case
27://按下esc键,取消修改,把文本框变成文本
td.html(oldText);
break;
}
});
});
};
/script
/head
body
table
id
=
"tab"
tr
td1/tdtd1/tdtd1/tdtd1/tdtd1/td
/tr
tr
td1/tdtd1/tdtd1/tdtd1/tdtd1/td
/tr
tr
td1/tdtd1/tdtd1/tdtd1/tdtd1/td
/tr
tr
td1/tdtd1/tdtd1/tdtd1/tdtd1/td
/tr
tr
td1/tdtd1/tdtd1/tdtd1/tdtd1/td
/tr
/table
/body
/html
更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jQuery表格(table)操作技巧汇总》、《jQuery常用插件及用法总结》、《jquery中Ajax用法总结》、《jQuery拖拽特效与技巧总结》、《jQuery扩展技巧总结》、《jQuery常见经典特效汇总》、《jQuery动画与特效用法总结》及《jquery选择器用法总结》
希望本文所述对大家jQuery程序设计有所帮助。
一般都会在后台获得,比如这个表格的数据是用$list这个变量存储的,$list中每个元素都有id date title file四个字段,checkbox的name是id,现在写一个js方法用来将选中的复选框传到后台,需要使用一个按钮触发下面的方法
function fun(){
var arr = new Array();
$(":checked").each(function(){
arr[] = $(this).attr("name");
});
//然后用任意方法将arr传到后台
}
在后台根据传回来的id在$list中获得要你想要的数据。
上面是我觉得最简单的方法。
下面还有一个在页面里获得你要的数据的方法
将每一行数据都写在同一个div里,根据复选框的标示获得对应div内的数据
div name=“id”数据, (最后一列)input type="checkbox" name="id" //div
script
function fun(){
var arr = new Array();
var name = '';
$(":checked").each(function(){
name = $(this).attr("name");
arr[] = $("div[name=" + name + "]").html();
});
}
/script
var td=$("#你这个单元格的id");//当然了,这只是id选择器去获取标签对象,还有其他很多选择器!
$(td).html("你要改变的内容");
需要准备的材料分别有:电脑、html编辑器、浏览器。
1、首先,打开html编辑器,新建html文件,例如:index.html,并引入jquery,编写问题基础代码。
2、在index.html中的script标签,输入jquery代码:
$('body').append($('tr').find('td:eq(0)').text());
3、浏览器运行index.html页面,此时成功取到了表格的第一页数据并打印。
提供你2中思路,具体代码就不写了
生成表的时候给修改链接一个id,id保存当前行的主键比如id="tid"+主键,为它添加onclick方法,
var id=this.id.replace("tid",""); 获取到主键
把主键拿到数据库中查到相应的数据行,赋值给表单,完成!
var parents=$(this).parent().parent(); 获得tabel行
$(parents).find("td").each(function(){
根据列的顺序赋值给相应的表单元素
})
这个方法有局限性,数据是从当前页面中取得并不是实时读取数据库,如果数据在他处有更改是取不到最新的数据的。
一、数据准备
二、操作
//1.鼠标移动行变色
$("#table1 tr").hover(function(){
$(this).children("td").addClass("hover")
},function(){
$(this).children("td").removeClass("hover")
})
$("#table2 tr:gt(0)").hover(function() {
$(this).children("td").addClass("hover");
}, function() {
$(this).children("td").removeClass("hover");
});
//2.奇偶行不同颜色
$("#table3 tbody tr:odd").css("background-color", "#bbf");
$("#table3 tbody tr:even").css("background-color","#ffc");
$("#table3 tbody tr:odd").addClass("odd")
$("#table3 tbody tr:even").addClass("even")
//3.隐藏一行
$("#table3 tbody tr:eq(3)").hide();
//4.隐藏一列
$("#table5 tr td::nth-child(3)").hide();
$("#table5 tr").each(function(){$("td:eq(3)",this).hide()});
//5.删除一行
// 删除除第一行外的所有行
$("#table6 tr:not(:first)").remove();
//6.删除一列
// 删除除第一列外的所有列
$("#table6 tr td:not(:nth-child(1))").remove();
//7.得到(设置)某个单元格的值
//设置table7,第2个tr的第一个td的值。
$("#table7 tr:eq(1) td:nth-child(1)").html("value");
//获取table7,第2个tr的第一个td的值。
$("#table7 tr:eq(1) td:nth-child(1)").html();
//8.插入一行:
//在第二个tr后插入一行
$("插入3插入插入插入").insertAfter($("#table7 tr:eq(1)"));
//删除指定行(第二行) $("#table3 tr:gt(0):eq(1)").remove();
(2)删除列,比如删除表格中的第二列:
//eq:获取子元素索引从 0 开始,先删除表头$("#table3 tr th:eq(1)").remove();//nth-child:获取子元素从 1 开始$("#table3 tr td:nth-child(2)").remove();
(3)删除其它行,比如第二行之外的所有行:
$("#table3 tr:gt(0):not(:eq(1))").remove();
(4)删除其它列,比如第二列之外的所有列:
//先删除表头$("#table3 tr th:not(:eq(1))").remove();$("#table3 tr td:not(:nth-child(2))").remove();
(5)隐藏行,比如隐藏第二行:
$("#table3 tr:gt(0):eq(1)").hide();//或者//$("#table3 tr:gt(0):eq(1)").css("display", "none")//显示//$("#table3 tr:gt(0):eq(1)").css("display", "");
(6)隐藏列,比如隐藏第二列:
$("#table3 tr th:eq(1)").hide();
$("#table3 tr td:nth-child(2)").hide();
//或者
//$("#table3 tr th:eq(1)").css("display", "none");
//$("#table3 tr td:nth-child(2)").css("display", "none");
//显示
//$("#table3 tr th:eq(1)").css("display", "");
//$("#table3 tr td:nth-child(2)").css("display", "");
jquery 获取 table 总行数:
$("table tr").size();
var hang = $("#g").find("tr").length;
jquery 获取 table 总列数:
$("table td").size();
var lie = $("#g").find("tr").find("td").length-1;