Jquery操作表格元素
2017-02-16 22:24
127 查看
首先在IE下面 var mytable = document.getElementById("mytable").rows[1].cells[2].innerHTML;
这种方式 IE下面回报错;说没有.innerHTML的值;查资料发现是因为 .innerHTML和jQuery冲突
那只能用jQuery的方式获取单元的值了
1.先获取表格有几行数据和几列数据
var rows = document.getElementById("playlistTable").rows.length; //获得行数(包括thead)
var colums = document.getElementById("playlistTable").rows[0].cells.length; //获得列数
2.循环获取每个单元格的数据
获取方式是 var tdValue = $("#playlistTable tr:eq("+i+") td:eq(0)").html();//其中i是变量;要用那种方式“”
正常情况是var tdValue = $("#playlistTable tr:eq(0) td:eq(0)").html();
if(rows > 1){// 不要第一行的 thead)
for (var i = 1; i < rows; i++) { //每行
var PayObj = new Object();
PayObj.O_NBR = O_NBR;
var tdValue = $("#playlistTable tr:eq("+i+") td:eq(0)").html();
if(tdValue == "POS录入"){
PayObj.P_PAY_TYP = "3";
PayObj.P_POS = $("#playlistTable tr:eq("+i+") td:eq(5)").html();
PayObj.P_NBR = $("#playlistTable tr:eq("+i+") td:eq(4)").html();
PayObj.P_HL_ZH = $("#playlistTable tr:eq("+i+") td:eq(7)").html();
}
3.其他发现
就是在 js里面 也可以用对象的方式封装数据
(1) //初始化JSON数组;这是对象数组
var a = JSON.parse("{\"title\":\"\",\"data\":[]}");
(2)初始化对象
var PayObj = new Object();
PayObj.O_NBR ="123456789";
PayObj.NAME ="吴水水";
(3)添加对象到数组
a.data.add(PayObj); //
有时候 js 报找不到 add()方法的错误;这是可以使用 push();
(4)格式化数据
///格式化数据
var obj=JSON.stringify(a);
(5)提交到后台
$.ajax({
url: "${applicationScope.rootpath}contract/savePayOffInforOfAll.action",
type: "post",
data: {'param':obj},
datatype: "json",
success: function (data) {
var obj = eval("(" + data + ")");
if (obj.success) {
mini.unmask();
alert(obj.message);
location.reload();
}
else {
mini.unmask();
alert(obj.message);
}
}
});
(6)后台解析数据
String param = request.getParameter("param");
JSONObject json=JSONObject.fromObject(param);
@SuppressWarnings("unchecked")
List<Map<String,String>> payList=json.getJSONArray("data");
下面就能正常的list结合操作数据了
Jquery 操作 Html Table 是很方便的,这里对表格的基本操作进行一下简单的总结。
首先建立一个通用的表格css 和一个 表格Table:
一、鼠标移动到行更换背景色:
增加一个css样式:
Js脚本:
结果执行结果:
二、 表格奇偶行变色 :
奇数行和偶数行css:
Js脚本:
结果显示:
三、基本操作:
(1)删除行,比如删除表格中的第二行:
(2)删除列,比如删除表格中的第二列:
(3)删除其它行,比如第二行之外的所有行:
(4)删除其它列,比如第二列之外的所有列:
(5)隐藏行,比如隐藏第二行:
(6)隐藏列,比如隐藏第二列:
(7)插入新行,在表格最后的位置:
(8)插入行,在第二行之后插入:
(9)获得单元格的值,比如第二行第三列:
(10)获取一列的所有值,比如第二列:
(11)获取一行的所有值,比如第二行:
(12)合并行单元格 比如合并 第二行第二个和第三个单元格:
(13)拆分行单元格将上面合并的单元格还原:
(14)合并列单元格,比如合并第二列第二个单元格和第三个单元格
(15)拆分列单元格,比如将上面刚合并的单元格还原:
(16)为每个单元格增加点击事件,并弹出该单元格行索引和列索引:
这种方式 IE下面回报错;说没有.innerHTML的值;查资料发现是因为 .innerHTML和jQuery冲突
那只能用jQuery的方式获取单元的值了
1.先获取表格有几行数据和几列数据
var rows = document.getElementById("playlistTable").rows.length; //获得行数(包括thead)
var colums = document.getElementById("playlistTable").rows[0].cells.length; //获得列数
2.循环获取每个单元格的数据
获取方式是 var tdValue = $("#playlistTable tr:eq("+i+") td:eq(0)").html();//其中i是变量;要用那种方式“”
正常情况是var tdValue = $("#playlistTable tr:eq(0) td:eq(0)").html();
if(rows > 1){// 不要第一行的 thead)
for (var i = 1; i < rows; i++) { //每行
var PayObj = new Object();
PayObj.O_NBR = O_NBR;
var tdValue = $("#playlistTable tr:eq("+i+") td:eq(0)").html();
if(tdValue == "POS录入"){
PayObj.P_PAY_TYP = "3";
PayObj.P_POS = $("#playlistTable tr:eq("+i+") td:eq(5)").html();
PayObj.P_NBR = $("#playlistTable tr:eq("+i+") td:eq(4)").html();
PayObj.P_HL_ZH = $("#playlistTable tr:eq("+i+") td:eq(7)").html();
}
3.其他发现
就是在 js里面 也可以用对象的方式封装数据
(1) //初始化JSON数组;这是对象数组
var a = JSON.parse("{\"title\":\"\",\"data\":[]}");
(2)初始化对象
var PayObj = new Object();
PayObj.O_NBR ="123456789";
PayObj.NAME ="吴水水";
(3)添加对象到数组
a.data.add(PayObj); //
有时候 js 报找不到 add()方法的错误;这是可以使用 push();
(4)格式化数据
///格式化数据
var obj=JSON.stringify(a);
(5)提交到后台
$.ajax({
url: "${applicationScope.rootpath}contract/savePayOffInforOfAll.action",
type: "post",
data: {'param':obj},
datatype: "json",
success: function (data) {
var obj = eval("(" + data + ")");
if (obj.success) {
mini.unmask();
alert(obj.message);
location.reload();
}
else {
mini.unmask();
alert(obj.message);
}
}
});
(6)后台解析数据
String param = request.getParameter("param");
JSONObject json=JSONObject.fromObject(param);
@SuppressWarnings("unchecked")
List<Map<String,String>> payList=json.getJSONArray("data");
下面就能正常的list结合操作数据了
Jquery 操作 Html Table 是很方便的,这里对表格的基本操作进行一下简单的总结。
首先建立一个通用的表格css 和一个 表格Table:
table { border-collapse: collapse; border-spacing: 0; margin-right: auto; margin-left: auto; width: 800px; } th, td { border: 1px solid #b5d6e6; font-size: 12px; font-weight: normal; text-align: center; vertical-align: middle; height: 20px; } th { background-color: Gray; }
<table> <tr> <th style="width: 160px;">表头一</th> <th style="width: 160px;">表头二 </th> <th style="width: 160px;">表头三</th> <th style="width: 160px;">表头四</th> <th style="width: 160px;">表头五</th> </tr> <tr> <td>第一行第一列</td> <td>第一行第二列</td> <td>第一行第三列</td> <td>第一行第四列</td> <td>第一行第五列</td> </tr> <tr> <td>第二行第一列</td> <td>第二行第二列</td> <td>第二行第三列</td> <td>第二行第四列</td> <td>第二行第五列</td> </tr> <tr> <td>第三行第一列</td> <td>第三行第二列</td> <td>第三行第三列</td> <td>第三行第四列</td> <td>第三行第五列</td> </tr> <tr> <td>第四行第一列</td> <td>第四行第二列</td> <td>第四行第三列</td> <td>第四行第四列</td> <td>第四行第五列</td> </tr> </table>
一、鼠标移动到行更换背景色:
增加一个css样式:
.hover { background-color: #cccc00; }
Js脚本:
$(document).ready(function () { //鼠标移动到行变色,单独建立css类hover //tr:gt(0):表示获取大于 tr index 为0 的所有tr,即不包括表头 $("#table1 tr:gt(0)").hover( function () { $(this).addClass("hover") }, function () { $(this).removeClass("hover") }) });
结果执行结果:
二、 表格奇偶行变色 :
奇数行和偶数行css:
.odd{ background-color: #bbf;} .even{ background-color:#ffc; }
Js脚本:
$(document).ready(function () { //奇偶行不同颜色 $("#table2 tbody tr:odd").addClass("odd"), $("#table2 tbody tr:even").addClass("even") //或者 //$("#table2 tbody tr:odd").css("background-color", "#bbf"), //$("#table2 tbody tr:even").css("background-color", "#ffc") });
结果显示:
三、基本操作:
(1)删除行,比如删除表格中的第二行:
//删除指定行(第二行) $("#table3 tr:gt(0):eq(1)").remo 9f58 ve();
(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", "");
(7)插入新行,在表格最后的位置:
var newRow = "<tr style=\"background:red;\"><td>新行第一列</td><td>新行第二列</td><td>新行第三列</td><td>新行第四列</td><td>新行第五列</td></tr>"; $("#table3 tr:last").after(newRow);
(8)插入行,在第二行之后插入:
var newRow = "<tr style=\"background:red;\"><td>新行第一列</td><td>新行第二列</td><td>新行第三列</td><td>新行第四列</td><td>新行第五列</td></tr>"; $("#table3 tr:gt(0):eq(1)").after(newRow);
(9)获得单元格的值,比如第二行第三列:
var v = $("#table3 tr:gt(0):eq(1) td:eq(2)").text(); //结果显示:第二行第三列
(10)获取一列的所有值,比如第二列:
var v = ""; $("#table3 tr td:nth-child(2)").each(function () { v += $(this).text()+" "; }); //结果:第一行第二列 第二行第二列 第三行第二列
(11)获取一行的所有值,比如第二行:
var v = ""; $("#table3 tr:gt(0):eq(1) td").each(function () { v += $(this).text() + " "; }); //结果:第二行第一列 第二行第二列 第二行第三列 第二行第四列 第二行第五列
(12)合并行单元格 比如合并 第二行第二个和第三个单元格:
$("#table3 tr:gt(0):eq(1) td:eq(1)").attr("colspan", 2); $("#table3 tr:gt(0):eq(1) td:eq(2)").remove();
(13)拆分行单元格将上面合并的单元格还原:
//注意不能使用 //$("#table3 tr:gt(0):eq(1) td:eq(1)").removeAttr("colspan"); $("#table3 tr:gt(0):eq(1) td:eq(1)").attr("colspan", 1); $("#table3 tr:gt(0):eq(1) td:eq(1)").after("<td>第二行第三列</td>")
(14)合并列单元格,比如合并第二列第二个单元格和第三个单元格
$("#table3 tr:gt(0):eq(1) td:eq(1)").attr("rowspan", 2); $("#table3 tr:gt(0):eq(2) td:eq(1)").remove();
(15)拆分列单元格,比如将上面刚合并的单元格还原:
$("#table3 tr:gt(0):eq(1) td:eq(1)").attr("rowspan", 1); //在下面行第一个单元格后插入单元格 $("#table3 tr:gt(0):eq(2) td:eq(0)").after("<td>第三行第二列</td>");
(16)为每个单元格增加点击事件,并弹出该单元格行索引和列索引:
$(document).ready(function () { //点击#table3 的单元格返回 单元格索引 $("#table3 td").click(function () { var tdSeq = $(this).parent().find("td").index($(this)); var trSeq = $(this).parent().parent().find("tr").index($(this).parent()); alert("第" + (trSeq) + "行,第" + (tdSeq+1) + "列"); }) });
相关文章推荐
- JQuery 将选择器进行缓存 便于大量操作表格或其他页面元素
- jQuery操作表格元素,整体添加与删除
- JQuery之三: 操作元素的properties和attributes
- JQuery之五:操作元素内容
- 15款提高表格操作的jQuery插件
- 15款提高表格操作的jQuery插件
- 使用JS操作页面表格,元素的一些技巧
- jQuery - Manipuliation操作 - after在每个匹配的元素之后插入内容
- 从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式
- JQuery 表格操作(交替显示、拖动表格行、选择行等)
- jQuery中操作元素节点appendTo()与prependTo()的区别
- jQuery学习3:操作元素属性和特性
- JQuery操作一个表格简单示例
- 使用 JQuery 操作表格(交替显示、拖动表格行、选择行等)
- 使用jQuery操作元素的属性与样式
- JQuery基础之(五)使用JQuery操作元素的属性和样式
- JQuery之四: 操作元素的CSS样式
- 从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式
- jQuery框架学习第四天:使用jQuery操作元素的属性与样式
- jQuery 对表格进行操作