2011-12-31 207 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); 
}; 
相關問題