问题 #2799💬 已回答提出于 2020年5月24日作者 dintifla0 个反应

选择器带id和类选择器的顺序,id-selector后空格

快速解答作者 dintifla

简短更新: 我用 'selectors.unshift(idSelector)' 而不是 'selectors.add(idSelector)' 时,成功让选择器的顺序正确了。 现在我仍然遇到id-和class-selector之间缺失空格的问题。 直到现在,我一直找不到进入“Selectors.getFullString(..)”的方法。改变行为

阅读下方完整回答 ↓

问题

我目前正在开发一个网页应用,我们将这个项目集成为图形界面编辑器来定制环境。 我们的图形界面组件是从数据库加载和解析的。例如,我们可以通过一个ID来识别按钮、数据网格等(例如“17190fbd-13d6-430f-bb32-1a09d2151a77”)。这些组件由多个嵌套的 HTML 元素由框架构建,框架会添加样式类。 我现在的目标是通过类似“#ancestor-id .framework-class1.framework-class2”(例如 '#17190fbd-13d6-430f-bb32-1a09d2151a77 .my-text-label')访问 GrapesJS 的内部元素。 我在画布加载后,会为每个嵌套元素添加id-selector: 'allComponents.forEach((component: any) => {' ' const ancestorId = this.getAncestorId(component);' ' const idSelector = selectorManager.add('#${ ancestorId }');' ' const selectors = component.getSelectors();' ' selectors.add(idSelector);' }); 我的问题是现在职业选择器排在我的祖先ID选择器前面。...

回答(3)

dintifla2020年5月26日

简短更新:

我用 'selectors.unshift(idSelector)' 而不是 'selectors.add(idSelector)' 时,成功让选择器的顺序正确了。

现在我仍然遇到id-和class-selector之间缺失空格的问题。

直到现在,我一直找不到进入“Selectors.getFullString(..)”的方法。改变行为

artf2020年5月26日

你好@dintifla SelectorManager并不是设计成那样工作的(你只能混合使用'.class1.class2'类,但不能用ID),但说实话,我不太明白你使用SelectorManager的目的是什么。 如果你需要在编辑器中查询组件,只需这样做:'anyParentComponent.find('#my-id .my-class')[0]'

dintifla2020年5月26日

你好@artf谢谢你的回复。归根结底,这不仅仅是查询一个组件,而是生成它的CSS。我不需要 HTML,因为我的应用是用富客户端应用设计的,以抽象表示存储到数据库,然后解析成 DOM。因此,我无法使用GrapesJS生成的ID,因为我无法存储HTML(或其他DOM的任何表示)。 最终,我期望我的所有规则都是这样写的:“#top-level-component-id .my-class { ...} 举个简单的例子,比如生成的按钮 HTML: '''html <div id=“4b9c8f66-85d3-4488-8e23-5932bc3e8420” class=“dx-button dx-bu...

相关问答

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

与此问题匹配的付费插件

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

查看全部插件

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

免费方案

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

浏览免费插件 →
高级方案

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

浏览高级插件 →

浏览插件分类

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