最近一个项目中遇到这个要求:
代码:
<table border=2 id='tableid'>
<tr><td>A</td><td>B</td><td>C</td><td>D</td></tr>
<tr><td rowspan=2>a1</td><td>a2</td><td>a3</td><td>a4</td></tr>
<tr><td>b2</td><td>b3</td><td>b4</td></tr>
<tr><td rowspan=2>c1</td><td>c2</td><td>c3</td><td>c4</td></tr>
<tr><td>e2</td><td>e3</td><td>e4</td></tr>
</table>
显示:
A | B | C | D |
a1 | a2 | a3 | a4 |
b2 | b3 | b4 | |
c1 | c2 | c3 | c4 |
e2 | e3 | e4 |
如何用JS 达到隐藏a2-a4,c2-c4的效果呢 :
A | B | C | D |
a1 | b2 | b3 | b4 |
c1 | e2 | e3 | e4 |
只能用Js吗?JQuery实现要容易点~
可以用JQuery
有高招吗?隔行 的tr 要替换上一个tr?
@甲馨惗:
var tab=document.getElementById("tableid"); var trs=tab.getElementsByTagName("tr"); for(var i=1;i<trs.length;i++){ //这是有合并的行 var tds=trs[i].getElementsByTagName("td"); if(tds.length==4){ for(var j=1;j<tds.length;j++){//有合并的行就隐藏后面的单元格 tds[j].style.display='none'; } } } JS版本的!
@幻天芒:
再加一个:
<table id="tableid2" border=2>
<tr><td>A2</td><td>B</td><td>C</td><td>D</td></tr>
<tr><td rowspan=4>a1</td><td rowspan=2>a2</td><td>a3</td><td>a4</td></tr>
<tr><td>b2</td><td>b3</td></tr>
<tr><td rowspan=2>c1</td> <td>c2</td><td>c3</td></tr>
<tr> <td>e2</td><td>e3</td></tr>
</table><br/>
A2 | B | C | D |
a1 | a2 | a3 | a4 |
b2 | b3 | ||
c1 | c2 | c3 | |
e2 | e3 |
这时
var tds 如何获取值呢?
for(var j=1;j<tds.length;j++){//有合并的行就隐藏后面的单元格
if (j % 2 = 0)
tds[j].style.display='none'; }
主要思想是想方法让要隐藏的单元格display='none' 就行了
用什么工具是次要的