选择器带id和类选择器的顺序,id-selector后空格
简短更新: 我用 '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)
简短更新:
我用 'selectors.unshift(idSelector)' 而不是 'selectors.add(idSelector)' 时,成功让选择器的顺序正确了。
现在我仍然遇到id-和class-selector之间缺失空格的问题。
直到现在,我一直找不到进入“Selectors.getFullString(..)”的方法。改变行为
你好@dintifla SelectorManager并不是设计成那样工作的(你只能混合使用'.class1.class2'类,但不能用ID),但说实话,我不太明白你使用SelectorManager的目的是什么。 如果你需要在编辑器中查询组件,只需这样做:'anyParentComponent.find('#my-id .my-class')[0]'
你好@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...
相关问答
通过相似的问题讨论继续研究。
问题 #510
程序化添加新职业
你好,Artf, 我想编辑组件的样式(主要是导入的 html),但不修改同类的所有组件。我尝试用程序方式添加一个随机命名的类,比如这样: this.editor.on('component:selected', function(model) { 如果 (model & & m...
问题 #3627
:我正在尝试复制页面,但由于 ID,样式无法应用,结尾的 -2,-3 发生了变化。
“JavaScript const duplicatePage = (编辑者) => { let components = editor.getHtml(); 令 css = editor.getCss(); 让newPage = 编辑器。Pages.add({ 样式:CSS,...
问题 #4435
Pages Manager
GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? Chrome 最新版本可复制演示链接 暂时没有描述一下那个虫子 如何复现这个漏洞?创建包含Pages API函数的页面管理器测试select函数(如果你脑子里有东西,它会消失;如果你重新添加...
问题 #4000
Pasting a component in root body layer throws TypeError
GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome v89 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞?在官方演示中,进入图层管理器,用 cmd+c复制任...
与此问题匹配的付费插件
根据问题关键词和标签相关性精选,助你更快交付。
正在加载付费插件推荐……
浏览插件分类
直接跳转到市场上的插件分类页面。