我有一个表格,它可以展开和折叠,但使用起来变得太混乱了,而且IE和Firefox不能正常工作。
于是,这里是JavaScript代码:
function toggle_it(itemID){
// Toggle visibility between none and ''
if ((document.getElementById(itemID).style.display == 'none')) {
document.getElementById(itemID).style.display = ''
event.preventDefault()
} else {
document.getElementById(itemID).style.display = 'none';
event.preventDefault()
}
}
还有一个示例HTML:
<table>
<tr>
<td>Product</td>
<td>Price</td>
<td>Destination</td>
<td>Updated on</td>
</tr>
<tr>
<td>Oranges</td>
<td>100</td>
<td><a href="#" id="toggle" onClick="toggle_it('tr1');toggle_it('tr2')">+ On Store</a></td>
<td>22/10</td>
</tr>
<tr id="tr1" style="display:none">
<td></td>
<td>120</td>
<td>City 1</td>
<td>22/10</td>
</tr>
<tr id="tr2" style="display:none">
<td></td>
<td>140</td>
<td>City 2</td>
<td>22/10</td>
</tr>
<tr>
<td>Apples</td>
<td>100</td>
<td><a href="#" id="toggle" onClick="toggle_it('tr3');toggle_it('tr4')">+ On Store</a></td>
<td>22/10</td>
</tr>
<tr id="tr3" style="display:none">
<td></td>
<td>120</td>
<td>City 1</td>
<td>22/10</td>
</tr>
<tr id="tr4" style="display:none">
<td></td>
<td>140</td>
<td>City 2</td>
<td>22/10</td>
</tr>
</table>
问题是我对每个父元素使用一个ID,这非常令人烦恼,因为我想要为每个父元素设置许多隐藏行,并且有很多父元素,所以处理太多ID会很麻烦。而IE和FireFox只显示第一个隐藏的行,而不是其他的。我怀疑这是因为我已经通过同时触发所有ID来使其工作。我认为如果我使用类来标识隐藏行会更好。
我对这一切都很陌生,请尽量用简单的方式解释。另外,我已经尝试过jQuery,但无法成功。