使用jQuery使用next()x次

tho*_*mad 6 javascript jquery iterator next

使用next()(每次应用相同的函数)迭代x次的简单方法是什么?

我在Sharepoint工作,对HTML的控制有限; 我所能做的就是找到了其ID的元素,追查最近<td>,hide()它,然后继续前进到下一个(我不希望所有<td>的,只是约7或8连胜).

下面的代码有效,但不是很漂亮.

$("#my-easily-identifiable-id").closest("td").hide();
$("#my-easily-identifiable-id").closest("td").next().hide();
$("#my-easily-identifiable-id").closest("td").next().next().hide();
$("#my-easily-identifiable-id").closest("td").next().next().next().hide();
[ ... etc ... ]
Run Code Online (Sandbox Code Playgroud)

有什么更好的方法呢?

谢谢

PS:添加小提琴(天才)

Mat*_*all 9

使用.nextAll()+ .andSelf().slice().

$("#my-easily-identifiable-id").closest("td").nextAll().andSelf().slice(0, 7);
Run Code Online (Sandbox Code Playgroud)


Cha*_*had 6

我认为比目前发布的解决方案更简单的解决方案是.nextUntil():

//to get next 8 elements
var i = $('#my-easily-identifiable-id').index();
$('#my-easily-identifiable-id').closest('td').nextUntil('', ':lt(' + (i+8) + ')');

//to get self and next 3
var i = $('#my-easily-identifiable-id').index();
$('#my-easily-identifiable-id').closest('td').nextUntil('', ':lt(' + (i+3) + ')').andSelf();
Run Code Online (Sandbox Code Playgroud)

抓住所有"下一个"元素,直到过滤器被击中(在这种情况下,我们选择接下来的8个元素).由jsFiddle验证.