JQuery 按选择器拆分

发布于 2024-11-04 15:11:54 字数 769 浏览 0 评论 0原文

我想知道是否有一种方法可以将 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(); 函数我将无法解释标记中可能存在或不存在的任何类或 id 或任何其他属性。而且我不会返回 jquery 对象,因此我可以继续链接。

解决方案越简单越好。

I would like to know if there is a method for splitting a jQuery object into multiple parts (based on a selector), but not using the base javascript split(); method, which would only work on a string.

I'd want to be able to do something like: $("body").splitBySelector("br").each(); etc etc...

<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>

But as you can see if I were to use the split(); function I would not be able to account for any classes or ids or any other attributes that may or may not be present in the markup. And I would not be returned jquery objects,so I could continue chaining.

The simpler the solution the better.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

赤濁 2024-11-11 15:11:54

听起来您的 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 可能对您有用。文档页面上的示例看起来与您所询问的非常相似。

Sounds like your HTML should look like this:

<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>

And then, well, you know what to do.

Otherwise, if you insist, .nextUntil may be of use to you. The example on the documentation page there looks very similar to what you're asking about.

生死何惧 2024-11-11 15:11:54

根据您想要执行的操作(因为我认为这在现实生活中不太有用),您可以使用 split。

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

它并不是真正有用,因为在 for 循环中创建的 jQuery 对象除了是一个副本之外与页面上的内容没有任何关系......

Depending on what you're trying to do (because I can't see this as being all that useful IRL), you could use split.

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

It's not real useful because the jQuery object created there in the for loop doesn't have any relationship to what's on the page aside from being a copy...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文