首页 > 解决方案 > 使用 JQuery 替换开始和结束标记

问题描述

我需要解析我的网站并将新版本保存到变量中。

例如我有这样的代码:

<body>
  <div data-newname="test"></div>
  <div data-newname="test2"></div>
</body>

所以新代码应该是:

<body>
  {{Start:test}}{{End::test}}
  {{Start:test2}}{{End::test2}}
</body>

我想使用 replacewiths 方法,但这对我没有帮助:(也许是正则表达式?

标签: javascriptjquery

解决方案


您正在寻找replaceWith()

更新:倒序替换最里面的第一个

$($('[data-newname]').get().reverse()).replaceWith(function() {
  let data = $(this).data('newname')
  return `{{Start:${data}}}${$(this).html()}{{End::${data}}}`
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div data-newname="test1">
  Test1
  <div data-newname="test2">Test2</div>
</div>
<div data-newname="test3">Test3</div>


推荐阅读