2011-12-31 164 views
1

我需要选择所有a标签从<a class="self"><a class="next">。以下是示例选择两个特定元素之间的所有元素

<span class="pages"> 
    <a class="prev">&nbsp;</a> 
    <a>13</a> 
    <a>14</a> 
    <a>15</a> 
    <a>16</a> 
    <a class="self">17</a> 
    <a>18</a> 
    <a>19</a> 
    <a>20</a> 
    <a>21</a> 
    <a class="next">&nbsp;</a> 
</span> 

还有href的属性。上课前我不想得到任何东西self。我希望从selfspan元素结束。

+0

当你说“我需要得到”,你是什么意思的“得到”?你想删除所有其他标签,还是你想要一个jQuery选择器来选择'a.self'到'a.next'元素? – Alex 2011-12-31 10:21:08

回答

5

nextUntil[docs]会得到a.selfa.next,之间的所有a元素排除他们:

$('a.self').nextUntil('a.next', 'a'); 

如果要包括他们,只要使用.nextAll[docs]

$('a.self').nextAll('a').andSelf(); 
+0

我想他想要自己和下一个之间的所有标签... – JohnJohnGa 2011-12-31 10:21:52

+0

@JohnJohnGa:谢谢,修正:) – 2011-12-31 10:23:34

0

希望这可以帮助别人;它是包容性的,这意味着它会发送最后一个元素,以及调用该方法的元素。

/** 
* jQuery.fn.getRangeElements 
* 
* @access public 
* @parma HTMLElement|jQuery element 
* @return Array 
*/ 
jQuery.fn.getRangeElements = function(element) { 
    var $element = jQuery(element); 
    if (jQuery.inArray(element[0], this.siblings()) === -1) { 
     return []; 
    } 
    var $prevAll = this.prevAll(); 
    if (jQuery.inArray(element[0], $prevAll) !== -1) { 
     var $prevUntil = this.prevUntil($element), 
      set = []; 
     $prevUntil.each(function(index, element) { 
      set.push($(element)); 
     }); 
     set.unshift(this); 
     set.push($element); 
     return $(set); 
    } 
    var $nextUntil = this.nextUntil($element), 
     set = []; 
    $nextUntil.each(function(index, element) { 
     set.push($(element)); 
    }); 
    set.unshift(this); 
    set.push($element); 
    return $(set); 
}; 
相关问题