【发布时间】:2012-12-17 06:47:12
【问题描述】:
我有一些看起来相当简单的东西,但我很难过。我想要一个影响显示多少表行的表中的下拉列表。默认情况下,仅显示 2 行。通过在下拉列表中选择 4,应显示 4 行。我只看到其中一个隐藏的行出现,并且我也尝试将 2 行包装在一个隐藏的 div 中,但没有运气。想法?
<table border="1">
<tr>
<td class="noBG" colspan="3">
<select id="displayText" onchange="javascript:toggle();">
<option>2</option>
<option>4</option>
</select>Items
</td>
</tr>
<thead>
<tr>
<th>Dates</th>
<th>Time</th>
<th>Person</th>
</tr>
</thead>
<tr>
<td>12/3</td>
<td>12:45</td>
<td>John Doe</td>
</tr>
<tr>
<td>12/4</td>
<td>12:45</td>
<td>James Doe</td>
</tr>
<tr id="toggleText" style="display: none">
<td>12/4</td>
<td>12:45</td>
<td>Janey Doe</td>
</tr>
<tr id="toggleText" style="display: none">
<td>12/4</td>
<td>12:45</td>
<td>Janey Doe</td>
</tr>
</table>
<script language="javascript">
function toggle() {
var ele = document.getElementById("toggleText");
if(ele.style.display == "block") {
ele.style.display = "none";
}
else {
ele.style.display = "block";
}
}
</script>
【问题讨论】:
-
getElementById 只会获取一个元素
-
你的问题和这个问题很相似:stackoverflow.com/questions/1933602/…
-
不要使用属性
id来标识一组元素。 ID 应该是唯一的,不能重复。 -
问题根本不是id,而是display属性的使用(见下文我的回答)
标签: javascript select drop-down-menu html-table hidden