PageKit — 可自托管的 GrapesJS 建站工具,附完整源码。 获取抢先体验

问题 #2101💬 已回答提出于 2019年6月26日作者 prabha-9121 个反应

已选内容 父标签 删除

快速解答作者 afdallah❤ 1

你看过@artf的[#1077](https://github.com/artf/grapesjs/issues/1077#issuecomment-386444814)回答吗? 我觉得这很适合你的情况。 “JavaScript const component = editor.getSelected(); const coll = component.collection; const at = coll.indexOf(component); coll.remove(component); return coll.add('<div>新内容</div>',{ at }); ```

阅读下方完整回答 ↓

问题

https://github.com/artf/grapesjs/issues/906#issuecomment-381403858

我需要从 editor.getSelected() 中移除 HTML 内容。现在我用的是,

var selectedContent = editor.getSelected();
selectContent.set('content', '');
selectContent.components(MYHTML);

虽然我使用 selectedContent.set('content', ''); 但它会移除所有内部的 html。但没有移除父标签。例如, 之前:'<h2 id=“it4a”><p>示例更新检查完成</p></h2>' 之后:'<h2 id=“it4a”></h2>'

设置组件后,就像“<h2 id=”it4a“>NEW HTML</h2>”。如何在将 innerHTML 设置为空的情况下移除父标签?

请教我如何解决这个问题?

回答(3)

afdallah• 2019年6月27日

你看过@artf的[#1077](https://github.com/artf/grapesjs/issues/1077#issuecomment-386444814)回答吗? 我觉得这很适合你的情况。 “JavaScript const component = editor.getSelected(); const coll = component.collection; const at = coll.indexOf(component); coll.remove(component); return coll.add('<div>新内容</div>',{ at }); ```

prabha-912• 2019年6月27日

是的,我试过@afdallah,它返回的是未定义的index。让我再试一次。谢谢你的回复:)

相关问答

通过相似的问题讨论继续研究。

与此问题匹配的付费插件

根据问题关键词和标签相关性精选,助你更快交付。

查看全部插件

正在加载付费插件推荐……

免费方案

在以下平台查看开源 GrapesJS 插件: GitHub 或在我们的免费目录中快速搜索。

浏览免费插件 →
高级方案

高级插件提供支持、定期更新和生产就绪的功能——为你节省数天的集成工作。

浏览高级插件 →

浏览插件分类

直接跳转到市场上的插件分类页面。