JQuery разделить по селектору - PullRequest
0 голосов
/ 03 мая 2011

Я хотел бы знать, существует ли метод для разделения объекта jQuery на несколько частей (на основе селектора), но без использования базового метода javascript split();, который будет работать только со строкой.

Я бы хотел иметь возможность сделать что-то вроде: $("body").splitBySelector("br").each(); и т. Д. И т. П. *

<html>
    <head></head>
    <body>
        <h1>Heading</h1>
        <p>Some text</p>
        <p>More text</p>
        <br />
        <h2>Sub Heading</h2>
        <p>Some other text</p>
        <br class="atrivialexample"/>
        <p>Yet more text</p>
        <p>and another</p>
    </body>
</html>

Но, как вы можете видеть, если бы я использовал функцию split();, я бы не смог учесть какие-либо классы или идентификаторы или любые другие атрибуты, которые могут присутствовать или не присутствовать в разметке. И мне не вернут jquery объекты, поэтому я мог бы продолжить цепочку.

Чем проще решение, тем лучше.

Ответы [ 2 ]

1 голос
/ 03 мая 2011

В зависимости от того, что вы пытаетесь сделать (потому что я не вижу в этом полезного IRL), вы можете использовать split.

var html = $("body").html().split(/<br[^>]?>/gi);
for(var i = 0; i < html.length; i++){
    // $(html[i]) etc.
}

Это не очень полезно, потому что объект jQueryсозданный там в цикле for не имеет никакого отношения к тому, что на странице, кроме того, что является копией ...

1 голос
/ 03 мая 2011

Похоже, ваш HTML должен выглядеть так:

<html>
    <head></head>
    <body>
        <div id="block1">
            <h1>Heading</h1>
            <p>Some text</p>
            <p>More text</p>
        </div>
        <div id="block2">
            <h2>Sub Heading</h2>
            <p>Some other text</p>
        </div>
        <div id="block3">
            <p>Yet more text</p>
            <p>and another</p>
        </div>
    </body>
</html>

А потом, ну, вы знаете, что делать.

В противном случае, если вы настаиваете, .nextUntil может иметь , используйте для вас. Пример на странице документации выглядит очень похоже на то, о чем вы спрашиваете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...