【发布时间】:2022-11-04 16:35:31
【问题描述】:
我正在使用 Vue 2 和 Sanity.io,我需要一种方法来用 HTML 标签包围特定元素之后的所有元素,然后用另一个 HTML 标签包围这个元素以及后面的元素。
假设每个<h1> 后面都会有多个段落,然后是另一个<h1>,后面还有另一个段落。我希望将它们与摘要和详细信息 HTML 标记分开。
例如,我有来自 Sanity 的数据,它是这样的。
<h1>text</h1>
<p>text</p>
<p>text</p>
<p>text</p>
<h1>text</h1>
<p>text</p>
<p>text</p>
<p>text</p>
我需要一种操作 DOM 的方法,让它像这样读取我的数据
<details>
<summary><h1>text</h1></summary>
<p>text</p>
<p>text</p>
<p>text</p>
</details>
<details>
<summary><h1>text</h1></summary>
<p>text</p>
<p>text</p>
<p>text</p>
</details>
为了澄清更多,我使用protable-text-to-vue package 将数据作为 vue 组件块发回。基本上,它们以与上述示例类似的形式来自理智。
【问题讨论】:
-
sanity的回复如何? -
@BoussadjraBrahim 我编辑了问题以添加更多说明。
-
blocks只是一个文本?如果是,您可以使用字符串方法替换标签 -
都是测试是的,有些是h3,有些是段落。你能提供一个例子或例子的来源吗?
-
考虑添加一个可运行minimal reproducible example。请注意,codesandbox 通过 CLI 使importing local projects 变得相当容易。
标签: javascript html css vue.js vuejs2