展開したり折りたたんだりするテーブルがありますが、乱雑になりすぎて使用できず、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 に 1 つの ID を使用することです。これは、親ごとに多くの非表示の行が必要なため、処理するには ID が多すぎるため、非常に面倒です。また、IE と FireFox は最初の隠し行のみを表示し、他の行は表示しません。これは、すべての ID をまとめてトリガーすることで機能させたためだと思われます。ID の代わりにクラスを使用して非表示の行を識別した方がよいと思います。
私はこれらすべてに本当に慣れていないので、簡単な方法で説明してみてください。また、jQueryを試しましたが、取得できませんでした。