2010-08-11 182 views
39

如何從當前元素開始選擇下一個「n」個元素?我的意思是...如何從jQuery中的當前元素開始選擇下一個「n」元素?

$(this).attr(...); 

我想這樣做「n」次。對於n = 4的例子:

$(this).attr(...); 
$(this).next().attr(...); 
$(this).next().next().attr(...); 
$(this).next().next().next().attr(...); 

或者是做一個循環:

for (i = 0; i < n; i++) { 
    $(this).next().attr(...); 
} 

我怎樣才能做到這一點?有沒有辦法通過選擇下一個「n」元素或循環來做到這一點?

+5

見鬼,爲什麼是這個downvoted?這措辭良好,這是一個常見的問題。 – 2010-08-11 19:11:25

+1

同意。兩票反對,沒有任何解釋。投票的人應該留下一個原因。這對我來說似乎是一個完全合理的問題。 – user113716 2010-08-11 19:18:31

回答

51

這應該工作:

$(this).nextAll().slice(0,4).attr(…) 

更新:

這將工作,太:

$(this).nextAll("*:lt(4)").attr(…) 
+0

slice()中的'0'是$(this)嗎? – Hristo 2010-08-11 19:18:16

+0

不,因爲在你調用'.nextAll()'這個不包含元素本身的情況下 – jigfox 2010-08-11 19:20:17

+8

@Hristo - 如果你還需要原始的,你可以調用'$(this).nextAll()。andSelf )...'。 – user113716 2010-08-11 19:29:18

0

$(this).slice(start_index, end_index)將選擇您的部分選擇。您可以在循環中跟蹤當前的索引,然後在達到條件時在原始集上應用.slice(cur_index, cur_index+n)函數。

10

the nextAll method選擇元素的以下兄弟元素,可以通過選擇器進行過濾。然後你可以跟着slice來限制一個更小的n。

+0

這是要走的路。 – 2010-08-11 19:11:45