Jquery Next / NextAll / NextUntil具有计数限制

真的很烦我,我不知道答案,我觉得这很简单.我想将选定元素中的下一个和前一个元素设置为限制(例如2).这是一个例子:
<ul>
<li>link 1</li>
<li>link 2</li>
<li>link 3</li>
<li>link 4</li>
<li class='active'>link 1</li>
<li>link 6</li>
<li>link 7</li>
<li>link 8</li>
<li>link 9</li>
</ul>

所以我想选择之前的两个元素和活动li之后的2个元素.我尝试过这样的事情:
$( ‘li.active’)nextAll( ‘:当量(2)’).然后使用prevAll将它添加到同一个但是它选择一个元素2个兄弟姐妹而不是整个组.

必须有一个简单的方法,我错过了任何建议?

注:我无法编辑HTML,它是动态生成的.

解决方法

有(至少)两种方法解决这个问题.您可以将 prevAll()nextAll()链接slice(),然后使用 add()将这两组合并:
var $active = $("li.active");
var $around = $active.prevAll().slice(0,2)
                     .add($active.nextAll().slice(0,2));

或者你可以获取活动元素的index(),使用slice()来获取该索引周围的兄弟,然后用not()过滤掉活动元素:

var $active = $("li.active");
var activeIndex = $active.index();
var $around = $active.siblings().addBack()
                     .slice(Math.max(0,activeIndex - 2),activeIndex + 3)
                     .not($active);

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: &lt;span id=&quot...
jQuery 添加水印 &lt;script src=&quot;../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...