Javascript 删除仅出现在DOM检查器中的空引号

Javascript 删除仅出现在DOM检查器中的空引号,javascript,jquery,html,css,dom,Javascript,Jquery,Html,Css,Dom,在我的contenteditable div中,如果文本被删除(由用户删除),然后立即通过空格(使用空格键)和任何文本进行删除,则DOM检查器中文本下方会出现空引号(Chrome和Safari,已测试) 下面是DOM检查器中显示的内容: <div id="reminderTextEditable" contenteditable="true"> " test text" "" </div> 不管空引号是什么(空白?),它们似乎会导致布局问题 如何删除导致空引号的内容?如

在我的contenteditable div中,如果文本被删除(由用户删除),然后立即通过空格(使用空格键)和任何文本进行删除,则DOM检查器中文本下方会出现空引号(Chrome和Safari,已测试)

下面是DOM检查器中显示的内容:

<div id="reminderTextEditable" contenteditable="true">
" test text"
""
</div>
不管空引号是什么(空白?),它们似乎会导致布局问题


如何删除导致空引号的内容?

如果在编辑时按enter键,某些浏览器(如Firefox)会添加一个标签以达到此效果。单击backspace时,光标似乎会删除换行符,但不会删除
标记。它还在那里。其他空白字符也可能出现类似问题

Mozilla有两个非常详细的示例,其中包含删除额外制表符缩进或新行的函数


要自己做,您必须解析contenteditable元素的innerHTML。如果节点没有innerHTML(或者是没有nodeValue的文本节点),请将其删除。然后检查BR标记,如果标记是BR并且没有下一步,则删除它

也许你最好的选择是调整你的布局,这样它就不会受到这个问题的影响,如果复杂性允许的话,可以通过CSS或JS进行调整。

你在所有浏览器中都试过吗?我在Firefox中也遇到过类似的问题,有
标签,而其他浏览器工作正常。布局问题是什么?“我可以复制额外的“”,但我正在努力找出它如何干扰页面上的任何其他内容?”迈克尔,我只在Chrome和Safari中尝试过。狩猎是我最关心的。我将调查这个问题。Thanks@c01gat3它似乎干扰了我用来计算线宽的算法,导致它认为div的文本与实际不同(我认为更长)。这在Chrome中仍然是个问题。你有没有找到解决办法?@user2782001谢谢。今晚我会调查这件事。另一篇看起来很有希望的文章。从这篇文章中,“可以在设置中找到许多视图选项,例如启用和禁用注释和空白节点的可见性。”不过,我对这些信息做不了太多。查看该页面后,我仍然找不到解决问题的方法。子节点的数量始终为1,并且缺少任何
标记。这很奇怪。您可以尝试childNode[0]。innerHTML.trim(“”)。trim(“\n”)并查看它是否更改innerHTML的长度。仍然没有成功。innerHTML没有显示这些空引号的迹象,修剪它也没有帮助。这些文本节点有一些特殊之处。如果它们是与空格相关的,我想它不会像换行符或空格字符那么简单;但是,现在它似乎干扰了我用来计算线宽的JavaScript代码。它将文本从一个div(空白:pre-wrap)复制到另一个div(空白:nowrap)中,并运行一个向文本添加分隔符的算法。有时,算法不正确,我认为空引号是罪魁祸首:\
<div id="reminderTextEditable" contenteditable="true">
"test text"
""
</div>
var list = document.getElementById('reminderTextEditable');
var list_items = list.childNodes;
alert(list_items.length);