【发布时间】:2016-02-03 10:32:15
【问题描述】:
我需要一些帮助。
<h2>Operating systems <span class="button small toggle-btn">Toggle</span></h2>
<table class="data" cellpadding="8" border="1">
<thead>
<tr>
<th class="first" style="width:120px">
Operating System </th>
<th class="">
Percentage </th>
</tr>
</thead>
<tbody>
<tr>
<td class="">iOS 8.4</td>
<td class="">
<div class="ui-percentage" style="width:17%">17 %</div>
</td>
</tr>
<tr class="tr even">
<td class="">iOS 8.3</td>
<td class="">
<div class="ui-percentage" style="width:6%">6 %</div>
</td>
</tr>
<tr>
<td class="">iOS 8.2</td>
<td class="">
<div class="ui-percentage" style="width:11%">11 %</div>
</td>
</tr>
<tr class="tr even">
<td class="">iOS 8.1.3</td>
<td class="">
<div class="ui-percentage" style="width:11%">11 %</div>
</td>
</tr>
<tr>
<td class="">iOS 8.1</td>
<td class="">
<div class="ui-percentage" style="width:6%">6 %</div>
</td>
</tr>
</tbody>
</table>
第一次加载页面时,我希望折叠表格。当我单击“切换”按钮时,我想更改表格状态,因此如果再次单击该按钮,基本上是展开它并再次折叠它。
这是我的脚本
<script>
$(document).ready(function() {
$('.toggle-btn').closest('table').hide(); // I want to target the table right after the button
$('.toggle-btn').on('click', function(event) {
$(this).closest('table').toggle();
});
});
</script>
我怎样才能使这项工作正确?
【问题讨论】:
-
发生了什么错误?
-
您的错误按钮(跨度)不是表格元素的后代。至少你应该检查过有关
closest()方法的文档......现在你得到了多少张桌子?如果只有一次,直接定位,否则使用相关的横向方法,例如:$(this).closest('h2').next().toggle(); -
@guradio:不,我没有发现任何错误
-
您应该使用
.parent()获取父级,然后使用.siblings(),因为该表是按钮父级的兄弟 -
@guradio:你的意思是:
$('.toggle-btn').siblings('table').hide();??
标签: javascript jquery html