【问题标题】:contentEditable by class = false not workingcontentEditable by class = false 不起作用
【发布时间】:2020-10-16 21:26:59
【问题描述】:

我有一个按钮,单击该按钮会调用一个函数,使所有具有类的项目都可编辑。它工作得很好。我遇到的问题是,我需要删除 contentEditable="true" 或将其设置为 false,因为当用户完成编辑时,页面会被导出。

启用编辑的代码(有效)

function editMode(){
    document.querySelectorAll('.edit').forEach(function(element){
        element.contentEditable = 'true';
    })
}

无法按预期工作的代码:

function editOff(){
    document.querySelectorAll('.edit').forEach(function(element){
        element.contentEditable = 'false';
    })
}

具有“edit”类的元素继续可编辑。当函数editOff 被调用时,它们应该不再是可编辑的了。

参考上述脚本:Javascript contentEditable of certain classes only [closed]

【问题讨论】:

  • 什么特别不工作?设置contentEditable = 'false' 后元素是否仍可进行内容编辑?
  • @Camelid 这是正确的,我已经编辑了问题以反映这一点。
  • 用户是否点击另一个按钮来完成编辑?
  • @Dr.Tenma 是的。用户将单击带有 onclick="editOff()" 的按钮

标签: javascript dom contenteditable


【解决方案1】:

这对你有用吗?

来源:源代码来自您问题中的参考资料。

function editMode(){
    document.querySelectorAll('.edit').forEach(function(element){
        element.contentEditable = 'true';
    })
}

function editOff(){
    document.querySelectorAll('.edit').forEach(function(element){
        element.contentEditable = 'false';
    })
}
<p class="edit">
abcdefghijklmnop
</p>

<button onclick="editMode()">
Click to edit
</button>

<button onclick="editOff()">
Click to stop edit
</button>

【讨论】:

  • 是的!它完美地工作。我正在尝试扩展我的 JS 知识。问题中包含的代码出了什么问题?
  • 老实说,您的代码没有任何问题。检查我使用过您的功能的更新后的 sn-p。 - 也许你忘记在你的元素上设置 class="edit"?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-10
  • 1970-01-01
  • 1970-01-01
  • 2019-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多