如何使用 jQuery show/hide 特定 table 行
How to show/hide specific table rows using jQuery
我在 table 中显示一些数据,每一行我都有另一行,其中包含一些默认情况下隐藏的详细信息,我想让它仅在用户单击 [=23] 时可见=].
HTML 看起来像这样:
<div id="listing">
<?php for(): ?>
<tr>
<td><a href="#" class="toggle">Toggle</a></td>
<td>...</td>
<td>...</td>
<td>...</td>
</tr>
<tr class="details" style="display: none">
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
</tr>
<?php endfor; ?>
</div>
我试过像这样使用 jQuery,但没有结果:
$('#listing').on('click', '.toggle', function(e) {
e.preventDefault();
$(this).closest('tr .details').toggle();
});
假设您修复了无效的 HTML 并包含 <table>
标签,您要使用:
$('#listing').on('click', '.toggle', function(e) {
e.preventDefault();
$(this).closest('tr').next('.details').toggle();
});
您需要使用.closest('tr')
在DOM中从点击的按钮向上遍历到父行,然后.next('.details')
移动到下一行元素。
在每个第一行元素上提供一个 data-target
这将是 class 的目标和 toggle
show/hide。
所以基本上点击 toggle
class 我们得到 data-target
使用该值找到我们的目标,然后简单地 toggle
目标。
JsFiddle : https://jsfiddle.net/63ujphmj/
Javascript
$(function()
{
$('.toggle').on('click', function()
{
var target = $(this).data('target');
$('.'+target).toggle();
});
});
Html
<div id="listing">
<table>
<tr>
<td><a href="#" class="toggle" data-target="details-1">Toggle 1</a></td>
<td><a href="#" class="toggle" data-target="details-2">Toggle 2</a></td>
<td><a href="#" class="toggle" data-target="details-3">Toggle 3</a></td>
<td><a href="#" class="toggle" data-target="details-4">Toggle 4</a></td>
</tr>
<tr class="details">
<td class="details-1" style="display: none">Toggle 1 details</td>
<td class="details-2" style="display: none">Toggle 2 details</td>
<td class="details-3" style="display: none">Toggle 3 details</td>
<td class="details-4" style="display: none">Toggle 4 details</td>
</tr>
</table>
</div>
我在 table 中显示一些数据,每一行我都有另一行,其中包含一些默认情况下隐藏的详细信息,我想让它仅在用户单击 [=23] 时可见=].
HTML 看起来像这样:
<div id="listing">
<?php for(): ?>
<tr>
<td><a href="#" class="toggle">Toggle</a></td>
<td>...</td>
<td>...</td>
<td>...</td>
</tr>
<tr class="details" style="display: none">
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
</tr>
<?php endfor; ?>
</div>
我试过像这样使用 jQuery,但没有结果:
$('#listing').on('click', '.toggle', function(e) {
e.preventDefault();
$(this).closest('tr .details').toggle();
});
假设您修复了无效的 HTML 并包含 <table>
标签,您要使用:
$('#listing').on('click', '.toggle', function(e) {
e.preventDefault();
$(this).closest('tr').next('.details').toggle();
});
您需要使用.closest('tr')
在DOM中从点击的按钮向上遍历到父行,然后.next('.details')
移动到下一行元素。
在每个第一行元素上提供一个 data-target
这将是 class 的目标和 toggle
show/hide。
所以基本上点击 toggle
class 我们得到 data-target
使用该值找到我们的目标,然后简单地 toggle
目标。
JsFiddle : https://jsfiddle.net/63ujphmj/
Javascript
$(function()
{
$('.toggle').on('click', function()
{
var target = $(this).data('target');
$('.'+target).toggle();
});
});
Html
<div id="listing">
<table>
<tr>
<td><a href="#" class="toggle" data-target="details-1">Toggle 1</a></td>
<td><a href="#" class="toggle" data-target="details-2">Toggle 2</a></td>
<td><a href="#" class="toggle" data-target="details-3">Toggle 3</a></td>
<td><a href="#" class="toggle" data-target="details-4">Toggle 4</a></td>
</tr>
<tr class="details">
<td class="details-1" style="display: none">Toggle 1 details</td>
<td class="details-2" style="display: none">Toggle 2 details</td>
<td class="details-3" style="display: none">Toggle 3 details</td>
<td class="details-4" style="display: none">Toggle 4 details</td>
</tr>
</table>
</div>