我正在尝试创建一个在某些行下显示详细(隐藏)信息的表。单击所述行时,表行应显示在单击的行下方。
目前我在一个类中显示了行,在类中有隐藏的行。
$("#report tr.odd").click(function(){
$(this).next("tr.hist").toggle();
});
单击奇数行时,应在其下方弹出hist行。但是,只显示第一行。我不知道如何让它与多个隐藏的行一起工作。
以下是我的HTML的一部分:
` 选择 电缆# 资源 目的地 改性 地点
<tr class="odd">
<td align="center"><input name="selectThis[]" type="checkbox" value="7435" id="selectThis[]"/></td>
<td align="center" >bE4 </td>
<td align="left">5B04 </td>
<td>JOHN'S PC / RM. 58 </td>
<td> </td>
<td> </td>
</tr>
<tr class="odd">
<td align="center"><input name="selectThis[]" type="checkbox" value="7436" id="selectThis[]"/></td>
<td align="center" >bE5 </td>
<td align="left">5B05 </td>
<td>BRAD'S PC / RM. 58 </td>
<td> </td><td> </td>
</tr>
<tr class="odd">
<td align="center"><input name="selectThis[]" type="checkbox" value="7437" id="selectThis[]"/></td>
<td align="center" >bE6 </td>
<td align="left">5B06 </td>
<td>JAMES' PC / RM. 58 </td>
<td> </td>
<td> </td>
</tr>
<tr class='odd'>
<td align="center"><input name="selectThis[]" type="checkbox" value="7438" id="selectThis[]"/></td>
<td align="left" > <span style='cursor:pointer'><left><img src='images/arrow.png'></left></span> bE7 </td>
<td align="left">5B07 </td>
<td>JR'S PC / RM. 58 </td>
<td> </td>
<td> </td>
</tr>
<tr class='hist'>
<td>video</td>
<td>Bob Dylan</td>
</tr>
<tr class='hist'>
<td>video</td>
<td>Bob Dylan</td>
</tr>
<tr class='hist'>
<td>video</td>
<td>Bob Dylan</td>
</tr>
<tr class='hist'>
<td>audio</td>
<td>Bob Dylan</td>
</tr>
<tr class='odd'>
<td align="center"><input name="selectThis[]" type="checkbox" value="1663" id="selectThis[]"/></td>
<td align="left" > <span style='cursor:pointer'><left><img src='images/arrow.png'></left></span> V7 </td>
<td align="left">Bob Dylan </td>
<td>Highway 61 Revisited </td>
<td>12/05/2011 </td>
<td> </td>
</tr>
<tr class='hist'>
<td>video</td>
<td>Bob Dylan</td>
</tr>
<tr class='hist'>
<td>video</td>
<td>Bob Dylan</td>
</tr>
<tr class='hist'>
<td>video</td>
<td>Bob Dylan</td>
</tr>
</body>
更多信息
我怎么能修改这个:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#report tr:not(.odd)").hide();
$("#report tr.odd").show();
$("#report tr.odd").click(function(){
$(this).next("tr.hist").toggle();
});
});
</script>
所以我得到它下面的所有HIST行显示而不仅仅是第一个?
答案 0 :(得分:1)
查看nextUntil()函数...
$("#report tr.odd").click(function(){
$(this).nextUntil("tr.odd, tr.even").toggle();
});
您可以清楚地看到,您可以查看多个课程。
答案 1 :(得分:1)
$(this).nextAll("tr.hist").toggle(); // for all subsequent
$(this).nextUntil(":not(tr.hist)").toggle(); // for subsequent adjacent
答案 2 :(得分:1)
您可以使用jQuery的nextUntil函数执行此操作,如下所示:http://jsfiddle.net/zSAdR/1/
<强>更新强>
我使用您提供的HTML编辑了我的jsFiddle。它可以工作,但您应该考虑在.hist
行中插入一些空的表格单元格,或者至少使用colspan
属性来避免表格分开。