我有这个清单.nextUntil(':contains("2010")')
开启。当对.next()
设置的变量调用.nextUntil()
时,显然jQuery会跳过初始的:contains()
条件。
为什么会这样呢?是错误还是我错过了什么?
<nav class="timeLineNav">
<ul>
<li class="selected is-loaded"><a href="#year2014">2014</a></li>
<li class="is-loaded"><a href="#year2013">2013</a></li>
<li class=""><a href="#year2012">2012</a></li>
<li class=""><a href="#year2011">2011</a></li>
<li class=""><a href="#year2010">2010</a></li>
</ul>
</nav>
这是JavaScript代码:
var list = $('.timeLineNav ul li');
var nextUntil = list.nextUntil(':contains("2010")');
nextUntil.each(function (n, v) {
$('#length').append('<li>' + $(v).text() + ' ' + '</li>');
});
var next = nextUntil.next();
next.each(function (n, v) {
$('#nextLength').append('<li>' + $(v).text() + ' ' + '</li>');
});
这是一个带有完整示例的小提琴
最佳答案
您在jsfiddle中的输出符合预期。
使用var nextUntil = list.nextUntil(':contains("2010")');
变量nextUntil
具有“集合” {2013, 2012, 2011}
然后为该集合中的每个项目打印下一个li:
for 2013 --> 2012,
2012 --> 2011,
2011 --> 2010.
因此,在jsfiddle上的第二个输出