2011-12-31 16 views
1

すべてaタグを<a class="self">から<a class="next">に選択する必要があります。ここにある例2つの特定の要素の間にあるすべての要素を選択してください

<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。私はselfからspan要素の終わりまでのすべてを欲しいです。

+0

「取得する必要がある」と言うとき、「取得する」とはどういう意味ですか?他のタグをすべて削除したいのですか、 'a.self'を' a.next'要素にするjQueryセレクタが必要ですか? – Alex

答えて

5

nextUntil[docs]それらを除くa.selfa.nextの間のすべてのa要素、になるだろう:あなたがそれらを含めたい場合は、単に.nextAll[docs]を使用し、

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

を:

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

私は彼が自己と次の間のすべてのタグをしたいと思う... – JohnJohnGa

+0

@JohnJohnGa:ありがとう、固定:) –

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); 
};