使用 JQuery 的周围元素 - before() 没有做我想做的事

发布于 2024-12-18 13:44:21 字数 846 浏览 1 评论 0原文

我有一些 HTML,并且使用 .each() 调用每个 H1。我想要不仅用 div 包围 H1,而且还包围它下面的所有内容 - 直到下一个 H1

如果我尝试类似的操作:

$('#presentationcontent h1').each(function (index) {
      $(this).before('<div>');

它为我关闭了 div...我想做这样的事情:

 $('#presentationcontent h1').each(function (index) {
        counter++;
        if (counter == 1) 
        {
            $(this).before('<div class="headingSections" style="border: 1px">');
        }
        else
        {
           $(this).before('</div><div class="headingSections" style="border: 1px">');
        }

希望我可以将第一个 H1 设置为

以及其他每个关闭
并打开一个新的...这样 H1 下的所有内容都会包含在内。

任何事物?

I have some HTML and I am calling each H1 using .each(). I WANT to not only surround the H1's but all the content below it -until the next H1- with a div.

If I try something like:

$('#presentationcontent h1').each(function (index) {
      $(this).before('<div>');

It closes the div for me... I wanted to do something like this:

 $('#presentationcontent h1').each(function (index) {
        counter++;
        if (counter == 1) 
        {
            $(this).before('<div class="headingSections" style="border: 1px">');
        }
        else
        {
           $(this).before('</div><div class="headingSections" style="border: 1px">');
        }

Hoping that I could set the first H1 to <div> and every other one to close the <div> and open a new one... that way ALL THE CONTENT under the H1 gets included.

Anything?

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

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

发布评论

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

评论(2

默嘫て 2024-12-25 13:44:21

假设你的 HTML 设置,下面的方法就可以解决问题:

$('#presentationcontent h1').each(function() {
    $(this).nextUntil('h1').andSelf().wrapAll('<div/>');
});

这是一个 jsFiddle 它的工作原理。

Making assumptions about your HTML setup, the following would do the trick:

$('#presentationcontent h1').each(function() {
    $(this).nextUntil('h1').andSelf().wrapAll('<div/>');
});

Here is a jsFiddle of it working.

荒岛晴空 2024-12-25 13:44:21

尝试:

$('#presentationcontent h1').each(function (index) {
    $(this).nextUntil('h1').andSelf().wrapAll('<div/>');
    // ...
});

http://jsfiddle.net/7V2fb/1/

Try:

$('#presentationcontent h1').each(function (index) {
    $(this).nextUntil('h1').andSelf().wrapAll('<div/>');
    // ...
});

http://jsfiddle.net/7V2fb/1/

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