javascript - 如何找到没有 html 标签的文本并用 p 元素包装它

标签 javascript jquery

我有以下 HTML 代码。我想查找并替换没有 HTML 标记的文本,并使用 jQuery 将其包装在 p 元素中。有没有办法实现我的目标?

<div class="col span_12_of_12 firstDiv">
  <h2>My tasks</h2>
  Lorem ipsum dolor sit amet, consetetur sadipscing elitr
  <ul>
    <li>Lorem ipsum dolor sit</li>
    <li>Lorem ipsum dolor sit</li>
    <li>Lorem ipsum dolor sit</li>
    <li>Lorem ipsum dolor sit</li>
  </ul>
  Lorem ipsum dolor sit amet, consetetur sadipscing elitr
</div>

最佳答案

为此,您需要找到子文本节点并将它们包装在 <p> 中标签。为此,您可以使用 contents()filter()然后wrap() ,像这样:

$('.col').contents().filter(function() {
  return this.nodeType == 3 && this.textContent.trim();
}).wrap('<p />');
p { border: 1px solid #C00; } /* only used to make the output obvious */
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="col span_12_of_12 firstDiv">
  <h2>My tasks</h2>
  Lorem ipsum dolor sit amet, consetetur sadipscing elitr
  <ul>
    <li>Lorem ipsum dolor sit</li>
    <li>Lorem ipsum dolor sit</li>
    <li>Lorem ipsum dolor sit</li>
    <li>Lorem ipsum dolor sit</li>
  </ul>
  Lorem ipsum dolor sit amet, consetetur sadipscing elitr
</div>

关于javascript - 如何找到没有 html 标签的文本并用 p 元素包装它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43635398/

相关文章:

javascript - 使用 jquery 删除两个跨度之间的内容

javascript - 为什么不在 MVC 应用程序中的所有操作上使用异步?

javascript - cordova 插件的元数据值未更新

closures - 将参数传递给javascript中的闭包函数

javascript - 在 DOM 加载后使用 jQuery 或 JavaScript 将属性添加到 anchor

javascript - 推文按钮无法正常工作。 jQuery

javascript - Bootstrap 滚动 spy 不工作和导航菜单按钮导致标题重新加载

javascript - 在jquery中将li添加到ul时无法执行复选框事件

javascript - 无法调用未定义的方法 toUpperCase

javascript - 如何确保 HTML 元素在显示时位于屏幕中?