jQuery的显示/隐藏一个项目只在一个页面
问题描述:
我的问题是,我有while循环,它列出了球队的结果被用PHP加载到页面从MySQL数据库中的一些表中的数据。在这个循环有是被默认使用的一类“得分手”的隐藏表行,有那么一个显示/隐藏按钮,说天气显示或隐藏该行。jQuery的显示/隐藏一个项目只在一个页面
但“射手”级页面上多次因为有多个结果,所以如果你打的显示/隐藏按钮,它会打开所有的细胞与类“得分手”的。
示例代码是在这里:http://codepen.io/anthwinter/pen/vLJiy
我需要能够只显示/隐藏只有结果目前的得分手。我最好的办法是什么?
在此先感谢
HTML:
<table>
<tr>
<td><h1>One</h1></td>
</tr>
<tr>
<td><a href="#" class="showHide">show/hide</a></td>
</tr>
<tr>
<td class="scorers">Show or hide this content one</td>
</tr>
<tr>
<td><h1>Two</h1></td>
</tr>
<tr>
<td><a href="#" class="showHide">show/hide</a></td>
</tr>
<tr>
<td class="scorers">Show or hide this content two</td>
</tr>
</table>
JQ:
$(document).ready(function() {
$(".scorers").hide();
$(".showHide").click(function(event) {
event.preventDefault();
$(".scorers").toggle("fast");
});
});
答
通过只是在做$('.scorers').toggle("fast");
将针对所有.scorers
TD元素, 您需要点的使用this
比做一些DOM遍历点击一个:
$(document).ready(function() {
$(".scorers").hide();
$(".showHide").click(function(event) {
event.preventDefault();
$(this).closest('tr').next().find('.scorers').toggle("fast");
});
});
http://api.jquery.com/closest/
http://api.jquery.com/next/
http://api.jquery.com/find/
答
使用
$(this).closest('TR').next().find('.scorers').toggle("fast");
感谢,我发现这工作没有” .find (” .scorers')”。有了它,它似乎没有工作。但是,现在一切都好,谢谢。 – AnthW 2013-04-21 10:24:14