选择两个特定元素之间的所有元素

时间:2011-12-31 10:19:01

标签: jquery

我需要从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元素结尾的所有内容。

2 个答案:

答案 0 :(得分:7)

nextUntil [docs]会在aa.self之间获取所有a.next个元素,不包括它们:

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

如果您想要加入它们,只需使用.nextAll [docs]

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

答案 1 :(得分: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);
};