如何在 jQuery 中选择第 n 个 HTML 行
How to select the nth HTML row in jQuery
我需要选择HTML表的第n行,只知道所选行的id。这是我的情况:JSFiddle 演示
<table class="mytable1">
<tr><td id="12">1.0</td></tr>
<tr><td id="20">1.1</td></tr>
<tr><td id="120">1.2</td></tr>
<tr><td id="260">1.3</td></tr>
<tr><td id="2">1.4</td></tr>
<tr><td id="100">1.5</td></tr>
<tr><td id="23">1.6</td></tr>
</table>
例如,我想从我知道其 id 的行中淡出第 2 <tr>
,在这种情况下,淡出动画必须在<tr><td id="260">1.3</td></tr>
更清楚的是,这是最终的期望结果:
$("#"+"260").closest("tr").fadeOut();
谢谢
如果您需要在已知行之后获取第 n 行,您可以使用 index
和 :eq
选择器执行以下操作:
var n = 2;
var index = $("#20").closest("tr").index() + n;
$('.mytable1 tr:eq(' + index + ')').fadeOut();
演示:http://jsfiddle.net/896kxjn1/14/
如果你知道表中元素的索引 :nth-child(index) 可以是一个解决方案,
$("table tr:nth-child(2)").fadeOut();
如果你只知道id,而不是索引,那么获取该元素的索引,
// added 1 as .index() is indexed with 0 but in :nth-child(n) n is indexed 1
var elementIndex = $("#20").parent().index() + 1;
$("table tr:nth-child(" + elementIndex + ")").fadeOut();
js小提琴
资源 : :nth-child(index), .index()
我想淡出行中的第 2 个
然后你可以用:eq(index)
来做到这一点:
$('.mytable1 tr:eq(1)').fadeOut();
由于:eq()
是基于zero, 0
的,因此它的索引从 0 开始,因此第二项位于索引 1 处。
您也可以使用 nextAll
,然后按索引:
$("#"+"20"+"").closest("tr").nextAll('tr').eq(n-1).fadeOut();
这样,如果您不想,就不必从桌子本身开始。
小提琴
显然,有一百万个更好的方法来使用jQuery的功能来做到这一点,我甚至不知道存在。
但是,我将发布我的答案,以便展示一种公平、程序化的方式来实现这一目标。它可能有助于某人理解解决此问题背后的思维过程。
// Create an array of tr elements from your table
row_list = $('table.mytable1 tr');
// Get the actual DOM element selected by jQuery with [0]
selected_row = $("#"+"20").closest("tr")[0];
// Use some function to set "nth"
nth_add = 2;
for (var i = 0; i < row_list.length; i++) {
// Find the index of the current element, and add nth
if (row_list[i] == selected_row) {
select_new_index = i + nth_add;
break;
}
}
// Perform your manipulation on the index + nth element.
$(row_list[select_new_index]).fadeOut();
这是更新的JSFiddle。
相关文章:
- 从动态创建的html选择中选择所选选项
- 向html选择元素添加选项
- HTML选择,在DOM中选择了正确的选项,但在firefox中显示了错误的项目
- 构建HTML选择字段并使用JavaScript数组选择选项
- 当html选择/选项发生更改时,需要更新输入字段
- 使用javascript和html选择第二个选项后发出警报
- javascript函数将当前时间显示为html选择标记的预选值
- laravel5.0中HTML选择标记的动态选择
- jQuery将输入集中在下一个tr->td时,td包含一个输入字段,但从不关注html选择
- 基于's是在HTML选择框中选择的
- 如何使用Angular 2设置HTML选择值
- 在html选择中显示AJAX成功JSON值
- 使用 jQuery 增加 HTML 选择框的大小属性
- 当我认为它不应该重新渲染视图时,如何防止 Meteor 在 html 选择 dom 单击事件上重新渲染视图
- HTML 选择元素的只读等效项
- 如何使 html 选择选项在 Meteor 中工作
- 当“不相关”的 html 选择元素没有选择任何选项时,如何退出 jQuery 事件
- HTML选择:将默认值设置为给定值,而不是从选项列表中选择
- html选择-范围为0-10
- 是否可以在HTML选择下拉菜单的每个选项上附加一个qtip2工具提示