Javascript 将样式应用于表格时,如何同时将样式应用于表格和所有单元格

Javascript 将样式应用于表格时,如何同时将样式应用于表格和所有单元格,javascript,ckeditor,ckeditor5,Javascript,Ckeditor,Ckeditor5,我必须修改CKEDITOR5表格插件,以便能够同时将样式应用于表格和所有单元格。 有什么简单的方法吗? 目前,我迭代表子项并应用相同的样式,但这不是正确的方法。因为该值不会在单元格的字段中更新。 下面是更改表属性时触发的一些代码 导出函数downcastTableAttribute(转换、modelAttribute、styleName){ conversion.for('downcast').add(dispatcher=>dispatcher.on(`attribute:${modelda

我必须修改CKEDITOR5表格插件,以便能够同时将样式应用于表格和所有单元格。

有什么简单的方法吗? 目前,我迭代表子项并应用相同的样式,但这不是正确的方法。因为该值不会在单元格的字段中更新。 下面是更改表属性时触发的一些代码

导出函数downcastTableAttribute(转换、modelAttribute、styleName){
conversion.for('downcast').add(dispatcher=>dispatcher.on(`attribute:${modeldattribute}:table`),(evt,data,conversionApi)=>{
常量{item,attributeNewValue}=data;
常量{mapper,writer}=conversionApi;
如果(!conversionApi.consumer.consumer(data.item,evt.name)){
返回;
}
const table=[…mapper.toViewElement(item).getChildren()].find(child=>child.is('table');
if(attributeNewValue){
writer.setStyle(styleName、attributeNewValue、table);
//将样式也应用于单元格td
表._children[0]。_children.forEach(行=>{
row.\u children.forEach(td=>{
writer.setStyle(styleName,attributeNewValue,td);
});
})
//将样式也应用于单元格td
}否则{
writer.removeStyle(样式名,表);
表._children[0]。_children.forEach(行=>{
row.\u children.forEach(td=>{
writer.removeStyle(styleName,td);
});
})
}
}));
}
更新

从照片中可以看出,该字段未更新,与表的真实颜色相对应


做这件事的正确方法是什么?

更新:

我想除了
setStyle
之外,您还需要
setAttribute
()

看起来单元格属性编辑模式是专门从tableCell命令更新的:

这些都是从属性更新的: 通过


原始答案:


如果您对所有应用相同的样式,如果您有固定数量的样式,为什么不使用css?如果您的样式是动态生成的,为什么不使用动态生成的样式标记?

a您熟悉CKEditor吗?这是一个网页文本编辑器,有一个插件系统。在我的例子中,我想更改一个现有插件的功能。我原以为动态修改
style
标记对您仍然有效,但再想想,它不会覆盖元素上已经设置的样式。所以问题是上面的代码将样式应用到
td
,您希望它也将样式应用到其子元素吗?我更新了问题并添加了图像以查看问题。。我将背景样式应用于表格单元格,然后我将背景样式应用于表格和上面代码中的所有单元格,然后我打开单元格设置,第一次应用的单元格位置和字段中的值未更新。明白了,更改已正确应用于文档,但单元格属性模式未更新。我会更新我的答案。更新我的答案。