1

前と次の両方を除くすべての兄弟要素をjQueryが選択する方法はありますか?.next()でない場合はjquery .removeClass()を調べましたが、両方を実行する方法が見つからないようです。また、Googleは助けませんでした。

ありがとう

4

3 に答える 3

4

解決策1:インデックスフィルターを使用する:

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

ltgtで文字列セレクターを使用することもできますが、インデックスを連結して、jQueryが後で解析し、同じループを実行するためのセレクターを構築することを意味します。

解決策2:インデックススライスを使用する:

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

デモンストレーション

于 2013-03-19T11:59:55.083 に答える
2

これを試して:

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

サンプル

于 2013-03-19T12:10:46.587 に答える
1
var $this = $(this)
, $rest = $this.parent().children().not($this.prev()).not($this.next()).not($this);

現在の要素も結果に含める場合は、最後のnot呼び出しを削除するだけです。

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

フィドル

于 2013-03-19T12:06:42.353 に答える