有关table列、行遍历;列、行的动态合并,一直在整理,之前的业务有遇到,修修改改,最终实现了一个稳定的通用版本。之前一直都是做的私有笔记,现公布希望大家指正。顺带分享下开发这部分代码时遇到的问题及处理方式。持续更新中......
1 遍历table获取每行某列td内部的<span/>
table中固定某一列显示的是多标签<span/> ,下面示例是遍历table获取每行第十个td内部的<span/>。注意span和td使用的是 .html()和 .text()而不是 .val()。仅供参考。
$(function(){
var arr_cglx = new Array();
arr_cglx = $("[id=fbmx_cglx_yc]").text().replace(/\s/g,"");
for (var i=1;i<=arr_cglx.length;i++) {
if($('#TableId').find('tbody').find('tr:eq('+i+')').find('td:eq(10)').children('span').length>1){
//相关处理代码
}
}
})
1.1 另两种写法
直接遍历tr(适合页面只有一个table);
通过td的name进行遍历。
$('tr').each(function(i){ //这里的n可有可无
//开始遍历每一行的每一列
for(var j=0;j<cells(3);j++){
$(this).children('td').eq(i).text(); //这里就拿到了第n行第i列的文字,你可以赋值给其他变量
}
})
根据name直接遍历获取
function getbtynum(){
// $("td[name='123']").text();
//遍历行
var num =0;
$("td[name='zt']").each(function(){
if($(this).text()==0){
num++;
};
})
return num;
}
2 获取table的行数
这里是通过tbale ID定位table然后获取同class的多少,class一般写在tr上。
function check(){
var trSize= $("#DataTable .fpxx_tr_Class").size();
if(trSize==0){
alert("数据至少有一条");
return false;
}
return true;
}
页面 (当然也可以用id,name等)
table id="DataTable" >
<tr id ="tr" class="fpxx_tr_Class"></tr>
</table>
3 合并指定单元格并且根据隐藏id合并
/** * 合并指定表格(表格id为dataTable_id)指定列(列数为dataTable_colnum)的相同文本的相邻单元格
* dataTable_id 为需要进行合并单元格的表格的id。如在HTMl中指定表格 id="data" ,此参数应为 #data
* dataTable_colnum 为需要合并单元格的所在列。为数字,从最左边第一列为1开始算起。
*/
<script text="javascript">
/** * 合并指定表格(表格id为dataTable_id)指定列(列数为dataTable_colnum)的相同文本的相邻单元格 * dataTable_id 为需要进行合并单元格的表格的id。如在HTMl中指定表格 id="data" ,此参数应为 #data * dataTable_colnum 为需要合并单元格的所在列。为数字,从最左边第一列为1开始算起。 */
function dataTable_rowspan(dataTable_id, dataTable_colnum) {
dataTable_firsttd =