1

jQuery有什么方法可以选择除前一个和下一个之外的所有兄弟元素吗?我已经研究了jquery .removeClass() if NOT .next()但似乎无法找到同时做这两个的方法。此外,谷歌也没有帮助。

谢谢

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 在之后解析 if 并执行相同的循环。

解决方案 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);

如果您希望当前元素也包含在结果中,只需删除最后一个不调用。

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

小提琴

于 2013-03-19T12:06:42.353 回答