您的位置:首页 > 其它

IE,谷歌,遨游,火狐兼容的万能合并单元格方法

2012-01-13 17:05 246 查看
http://www.oschina.net/code/snippet_219817_7949

代码][JavaScript]代码

01
//tb:要合并单元格的表格;stacol:开始合并列;endcol:结束合并列;bool:合并方式(true代表stacol与endcol之间合并;false代表两边和并);num标记列(防止某些信息因为内容相同而合并。eg,姓名相同而编号不同的两个人)
02
function
uniteTable(tb,stacol,endcol,bool,num)
03
{
var
end;
04
var

i=0;
05
var

j=0;
06
var

rowCount=tb.rows.length;
//行数
07
var

colCount=tb.rows[0].cells.length;
//列数
08
var

obj1=
null
;
09
var

obj2=
null
;
10
var

n=5;
11
var

count=
new
Array();
12
for

(i=0;i<rowCount;i++){
13
for

(j=0;j<colCount;j++){
14
tb.rows[i].cells[j].id=
"tb__"

+i+
"_"
+j;
15
}
16
}
17
//合并标记列,防止某些信息因为内容相同而合并(不需要时,可以不用传值)
18
if
(
typeof
(num)!=
'undefined'
){
19
obj1=document.getElementById(
"tb__0_"
+(num-1).toString());
20
for
(
var

t=1;t<rowCount;t++){
21
obj2=document.getElementById(
"tb__"
+t.toString()+
"_"
+(num-1).toString());
22
if

(obj1.innerHTML==obj2.innerHTML){
23
obj1.rowSpan++;
24
obj2.parentNode.removeChild(obj2);
25
}

else
{
26
count[t]=n;
//当第一个人的名称合并结束时,给count[t]赋值做标记
27
obj1=document.getElementById(
"tb__"
+t.toString()+
"_"
+(num-1).toString());}
28
}
29
30
}
31
//如果endcol未定义,代码将最终一列定义为endcol
32
//if(typeof(endcol)=='undefined'){end=colCount;}else{end=endcol}
33
for

(i=0;i<colCount;i++){
34
//bool:合并方式,true代表两边合并;false代表中间合并
35
if
(bool){
if

(i+1<stacol||i+1>endcol){
continue
;}}
36
else
{
if
(i+1>stacol&&i+1<endcol){
continue
;}}
37
obj1=document.getElementById(
"tb__0_"
+i.toString());
38
for
(j=1;j<rowCount;j++){
39
obj2=document.getElementById(
"tb__"
+j.toString()+
"_"
+i.toString());
40
if
(
typeof
(count[j])!=
'undefined'
){
41
if
(count[j]!=n){
42
if
(obj1.innerHtml==obj2.innerHtml){obj1.rowSpan++;
43
obj2.parentNode.removeChild(obj2);}
44
else
{obj1=document.getElementById(
"tb__"
+j.toString()+
"_"
+i.toString());}
45
}
else
{obj1=document.getElementById(
"tb__"
+j.toString()+
"_"
+i.toString());}
46
}
47
else
{
if
(obj1.innerHTML==obj2.innerHTML){
48
obj1.rowSpan++;
49
obj2.parentNode.removeChild(obj2);
50
}
51
else
{obj1=document.getElementById(
"tb__"
+j.toString()+
"_"
+i.toString());}
52
}
53
}
54
}
55
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐