如何添加多个jquery方法?

时间:2014-03-17 03:43:41

标签: jquery

  

如何获取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');

3 个答案:

答案 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');

Demo

答案 2 :(得分:0)

var $3 = $('.three')

, all2to4 = $3.add($3.nextUntil('.five')).add($3.prevUntil('.one'))

$(selector).add()包含版本接受元素 - http://api.jquery.com/add/#add-elements