我想做个单元格合并,数据是事先写好的,表格有3列,所以做了3个doTab(),在每个doTab()中,从第0行向下遍历,如果单元格内容等于"forupmerge",就删除该单元格,同时上面单元格的rowspan+1,问题在这里:如果把doTab2()放到最前面(doTab2();doTab1();doTab0();)OK,没问题,但是,只要doTab2()不是在最前面,比如(doTab1();doTab12();doTab0();),那么,doTab2()就不执行。谁知道为什么???????谢谢!!!!!!!!!
<script>
doTab1();
doTab2();
doTab0();function doTab0(){ total_row_lenth=theObjTable.rows.length; old_row_index=0; cur_col_index=0; \\实际就是个循环,列cur_col_index依次增加,其他不变 rowspan=1; for (i=0;i<total_row_lenth;i++){ cur_row_index=i;
cur_cell_text=theObjTable.rows[cur_row_index].cells[cur_col_index].innerText; if (cur_cell_text!="forupmerge"){ old_row_index=cur_row_index; rowspan=1; }else{
rowspan=rowspan+1;
theObjTable.rows[cur_row_index].deleteCell(cur_col_index);
theObjTable.rows[old_row_index].cells[cur_col_index].rowSpan=rowspan; } }}function doTab1(){ total_row_lenth=theObjTable.rows.length; old_row_index=0; cur_col_index=1; \\实际就是个循环,列cur_col_index依次增加,其他不变
rowspan=1; for (i=0;i<total_row_lenth;i++){
cur_row_index=i;
cur_cell_text=theObjTable.rows[cur_row_index].cells[cur_col_index].innerText; if (cur_cell_text!="forupmerge"){ old_row_index=cur_row_index; rowspan=1; }else{
rowspan=rowspan+1; theObjTable.rows[cur_row_index].deleteCell(cur_col_index); theObjTable.rows[old_row_index].cells[cur_col_index].rowSpan=rowspan; }
}}
function doTab2(){ total_row_lenth=theObjTable.rows.length; old_row_index=0;
cur_col_index=2; \\实际就是个循环,列cur_col_index依次增加,其他不变
rowspan=1; for (i=0;i<total_row_lenth;i++){
cur_row_index=i;
cur_cell_text=theObjTable.rows[cur_row_index].cells[cur_col_index].innerText; if (cur_cell_text!="forupmerge"){ old_row_index=cur_row_index; rowspan=1; }else{ rowspan=rowspan+1; theObjTable.rows[cur_row_index].deleteCell(cur_col_index); theObjTable.rows[old_row_index].cells[cur_col_index].rowSpan=rowspan; }
}
}
</script>
解决方案 »
- javascript数组赋值
- 为什么页面无法弹出窗口
- jQuery左右选择框的问题
- newClassName+="";其中的空值有什么作用?
- js 在 firefox下面使用 xmlhttprequest 对象调用方法open出错 错误: uncaught exception: (¹Õ XMLHttpRequest.open ö
- 关于隐藏代码
- 通过js控制文本栏的属性,我这里的js好像不对,请帮我看看?
- 怎么将兄弟iframe中内容alert出来?!
- 新打开frame中toolbar的按钮如何引用?
- ◇◆如何以一个点为固定点,让图片向外伸展!!!◇◆
- 【提问】两个窗口之间增加行和列?
- 帮忙看下这JS 有什么问题
全部贴上,大家试试看:
<html>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <body >
<table width="100%" border=1 cellspacing=0 bordercolorlight="#7b7b7b" bordercolordark="#efefef" id="theObjTable" >
<tr >
<td >序号</td>
<td width="100px">公司名称</td>
<td >订单客户</td>
<td >部门</td>
<td>业务员</td>
<td >交款方式</td>
</tr>
<tr >
<td >1</td>
<td >中国电信</td>
<td >订单客户名称</td>
<td >广告部</td>
<td >王天一</td>
<td >现金</td>
</tr >
<tr >
<td >2</td>
<td >forupmerge</td>
<td >forupmerge</td>
<td >forupmerge</td>
<td >李小红</td>
<td >信用卡</td>
</tr >
<tr >
<td >3</td>
<td >中国电信</td>
<td >订单客户名称</td>
<td >市场部</td>
<td >王老二</td>
<td >银行卡</td>
</tr >
</table>
</body>
<script>
doTab1();
doTab2();
doTab3();
function doTab1(){
total_row_lenth=theObjTable.rows.length;
old_row_index=0;
cur_col_index=1;
rowspan=1;
for (i=0;i<total_row_lenth;i++){
cur_row_index=i;
cur_cell_text=theObjTable.rows[cur_row_index].cells[cur_col_index].innerText;
if (cur_cell_text!="forupmerge"){
old_row_index=cur_row_index;
rowspan=1;
}else{
rowspan=rowspan+1;
theObjTable.rows[cur_row_index].deleteCell(cur_col_index);
theObjTable.rows[old_row_index].cells[cur_col_index].rowSpan=rowspan;
}
}
}
function doTab2(){
total_row_lenth=theObjTable.rows.length;
old_row_index=0;
cur_col_index=2;
rowspan=1;
for (i=0;i<total_row_lenth;i++){
cur_row_index=i;
cur_cell_text=theObjTable.rows[cur_row_index].cells[cur_col_index].innerText;
if (cur_cell_text!="forupmerge"){
old_row_index=cur_row_index;
rowspan=1;
}else{
rowspan=rowspan+1;
theObjTable.rows[cur_row_index].deleteCell(cur_col_index);
theObjTable.rows[old_row_index].cells[cur_col_index].rowSpan=rowspan;
}
}
}
function doTab3(){
total_row_lenth=theObjTable.rows.length;
old_row_index=0;
cur_col_index=3;
rowspan=1;
for (i=0;i<total_row_lenth;i++){
cur_row_index=i;
cur_cell_text=theObjTable.rows[cur_row_index].cells[cur_col_index].innerText;
if (cur_cell_text!="forupmerge"){
old_row_index=cur_row_index;
rowspan=1;
}else{
rowspan=rowspan+1;
theObjTable.rows[cur_row_index].deleteCell(cur_col_index);
theObjTable.rows[old_row_index].cells[cur_col_index].rowSpan=rowspan;
}
}
}
</script>
</html>