如何根据 class 名称和 contenteditable 值切换 div 背景颜色

How to toggle div background color based on class name and contenteditable value

我想根据 class 名称 'cls-editable' 更改 div 背景颜色,javascript 使用它来查找元素,然后将可编辑属性设置为'true' 或 '假。

可编辑时,背景为黄色。否则,它是白色的。

HTML

<div class='cls-editable'>
  Hello
</div>


CSS:

.cls-editable, [contenteditable="true"] {
   background-color: yellow;
}

.cls-editable, [contenteditable="false"] {
   background-color: white;
}


Javascript:

if (this.checkStatus) {
  $('.dirs_row').children('.cls-editable').each(function () {
    $(this).attr('contenteditable', 'true');
  });
} else {
  $('.dirs_row').children('.cls-editable').each(function () {
    $(this).attr('contenteditable', 'false');
  });
}

但是,它不起作用。 css 怎么了?

你几乎答对了!这是正确的解决方案:

.cls-editable[contenteditable="true"] {
   background-color: yellow;
}

.cls-editable[contenteditable="false"] {
   background-color: white;
}
<div class='cls-editable' contentEditable="true">
  Hello
</div>
<div class='cls-editable' contentEditable="false">
  Hello
</div>

试试这个

CSS

.cls-editable[contenteditable="true"] {
   background-color: yellow;
}

.cls-editable[contenteditable="false"] {
   background-color: white;
}

输出