JQuery由选择器分割

时间:2011-05-03 13:40:07

标签: jquery html jquery-selectors

我想知道是否有一种方法可以将jQuery对象拆分成多个部分(基于选择器),但是不使用基本的javascript split();方法,该方法只适用于字符串。< / p>

我希望能够做到:$("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();函数,我将无法考虑任何类或ID或标记中可能存在或不存在的任何其他属性。而且我不会返回jquery对象,所以我可以继续链接。

解决方案越简单越好。

2 个答案:

答案 0 :(得分:1)

听起来你的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可能属于use。文档页面上的示例与您所询问的内容非常相似。

答案 1 :(得分:1)

根据您要做的事情(因为我不能将其视为有用的IRL),您可以使用拆分。

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

这不是真正有用,因为在for循环中创建的jQuery对象与页面上的内容没有任何关系,只是作为副本...