如何将div中的前两个相邻标题分组?标题可以是任何标题标签(h1 - h6).

如果只有一个标题,则只有该标题将被换行.

Html:

<div class="about-content-wrap content-with-double-headline">
   <h2>Milk &amp; Honey</h2>
   <h4>Taste of Heaven!</h4>
   <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor</p>
   <h3>asdasdas</h3>
</div>

这就是我一直在try 的:

$('.content-with-double-headline').find('h1,h2,h4,h4,h5,h6').wrapAll('<div></div>');

但它也包装标题是不相邻的.

我想要的结果是:

<div class="about-content-wrap content-with-double-headline">
   <div class="any-class">
      <h2>Milk &amp; Honey</h2>
      <h4>Taste of Heaven!</h4>
   </div>
   <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor</p>
   <h3>asdasdas</h3>
</div>

enter image description here

推荐答案

试着像下面这样做.我在你的div的基础上加了content-with-double-headline个班.在 comments 中有解释.

// Get all header nodes
let x = $('.content-with-double-headline').find('h1,h2,h3,h4,h5,h6');

// Loop over selected nodes and check if next element is also a header then wrap it & break the loop.
for (let i = 0; i < x.length; i++) {
  // Get next sibling element
  let nextEl = $(x[i]).next();
  // Check if sibling element is header or not
  if (nextEl.is('h1,h2,h3,h4,h5,h6')) {
    // Wrap current & next element.
    $([x[i], nextEl[0]]).wrapAll('<div style="background:grey"></div>');
    break;
  }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<div class="about-content-wrap content-with-double-headline">
  <h2>Milk &amp; Honey</h2>
  <h4>Taste of Heaven!</h4>
  <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex
    ea commodo consequat. Duis autem vel eum iriure dolor</p>
  <h3>asdasdas</h3>
</div>

Jquery相关问答推荐

无法使用 HTML 设置未定义的 jQuery UI 自动完成的属性_renderItem

如何从 jQuery 转到 React.js?

jQuery 1.4.1 中缺少 JSON 字符串化?

如何在 jquery 中包含 !important

Twitter Bootstrap 是否包含 jQuery?

JavaScript 或 jQuery 字符串以实用函数结尾

将变量传递给jQuery AJAX成功回调中的函数

ASP .NET MVC 在每个字段级别禁用客户端验证

一次替换多个字符串

如何在 Jquery 中通过索引获取子元素?

Jquery查找所有以字符串开头的ID?

blueimp 文件上传插件中的 maxFileSize 和 acceptFileTypes 不起作用.为什么?

jquery 从特定表单获取所有输入

如何在javascript中获取json键和值?

如何使用jquery获取点击链接的href?

jQuery闪烁突出显示对div的影响?

jQuery 追加淡入

检测 jQuery UI 对话框是否打开

如何使用 jQuery Select 第一个父 DIV?

jQuery向左滑动并显示