如何获取siblingsUntil jquery?
有nextUntil,prevUntil但是没有siblingsUntil?
假设这个html:
<ul>
<li class="one sib">list item 1</li>
<li>list item 2</li>
<li class="three">list item 3</li>
<li>list item 4</li>
<li class="five sib">list item 5</li>
</ul>
来自课堂&#34;三&#34;:
使用nextUntil:
$('.three').nextUntil('.one').css('color','red');//colors to list item 4
使用prevUntil:
$('.three').prevUntil('.five').css('color','blue');//colors to list item 2
现在,我可能无法做到以下几点:
$('.three').siblingsUntil('.sib').css('color','green');//colors to list item 2 and 4
那么,如何将列表项目2和列表项目3作为siblingsUntil获取?
解决方案:
幸运的是,有end()方法,我们可以与nextUntil()和prevUntil()结合使用:
$('.three').nextUntil('.five').css('color','red').end().prevUntil('.one').css('color','red');
但我不确定是否有更简单的方法来实现同样的目标。
现在,真正的问题:
我们可以像这样添加多个选择器:
$(selector).add(another_selector).css('color','red');
我想知道是否有一些我们可以添加类似这样的jquery方法:
$('.three').add($.nextUntil('.five'),$.prevUntil('.one')).css('color','red');
答案 0 :(得分:1)
您可以使用.add()之类的
var $el = $('.three');
$el.nextUntil('.five').add($el.prevUntil('.one')).addBack().css('color', 'red');
演示:Fiddle
答案 1 :(得分:1)
您可以从空集开始,然后添加每个子集:
var $three = $('.three');
$()
.add($three.prevUntil('.one'))
.add($three.nextUntil('.five'))
.css('color','red');
答案 2 :(得分:0)
var $3 = $('.three')
, all2to4 = $3.add($3.nextUntil('.five')).add($3.prevUntil('.one'))
$(selector).add()
包含版本接受元素 - http://api.jquery.com/add/#add-elements