2013-03-19 55 views

回答

4

解決方案1:使用indexfilter

var index = $(this).index(); 
var $elements = $(this).siblings().filter(function(){ 
    var thisindex = $(this).index(); 
    return thisindex < index-1 || thisindex > index+1; 
}); 

你也可以使用一個字符串選擇與ltgt但這意味着串聯的指數建立一個選擇只爲jQuery解析,如果事後做同樣的循環。

解決方案2:使用indexslice

var index = $(this).index(); 
var $elements =$(this).siblings(); 
$elements = $elements.slice(0, index-1).add($elements.slice(index+1)); 

Demonstration

+0

謝謝Dystroy,解決方案1發揮了魅力。 – ggdx 2013-03-19 12:23:48

1
var $this = $(this) 
, $rest = $this.parent().children().not($this.prev()).not($this.next()).not($this); 

如果你想在當前元素也包括在結果中,只去除最後不叫。

var $this = $(this) 
, $rest = $this.parent().children().not($this.prev()).not($this.next()); 

fiddle

2

試試這個:

var item = $('selector'); 
var elements = item.siblings().not(item.prev()).not(item.next()); 

Sample