[[为存档编辑]]
如果你想让一个 div 认为它里面有一个字符,这样你就可以在它的父元素上输入 contenteditable == true ,请参见这个链接: type in empty divs while contenteditable = true?
[[原始问题]]
我试图在我的 html 中插入一个“
”,但在解析后它打印为一个“”
我得到 --- <div>" some text"</div>
我要 ------> <div>" some text"</div>
(其中  
; 是文本节点)
我试过插入
" "
和
String.fromCharCode(160)
和
document.createTextNode('\u00A0')
但是没有雪茄
Dom高手请赐教
编辑:
当我说我希望它成为
节点我想说的是我想要  
出现在开发者控制台的 dom 中。我注意到 " "
的行为和
不同,因为浏览器似乎没有考虑 " "
包含任何字符
edit2
对于这两种情况,这是我的 dom 在 chrome 开发人员工具 [elements 选项卡] 上的样子
假装这些 block 是div
第二个 div 报告有 innerHTML = " "
而第一个 div 甚至没有 innerHTML 属性
我知道你们都会说“这就是我们所说的!”使用 "&nbsp;"
,但是当我这样做时,浏览器会打印字符串 " "
而不是制作不间断空间
edit 3 好的,每个人都不要试图回答我的愚蠢问题。我正在使用一个 contenteditable div 并制作一个自定义函数,当用户按下 enter 时插入一个新的 div。我构建了一个包含带有
的 div 标签的 outerHTML 字符串在中间。问题是 html 解释
作为" "
除非你直接设置 innerHTML = "&nbsp;"
.这可能是因为当我制作字符串时:
var nbsp = "&nbsp;";
string "<div>+nbsp+</div>
...以便我可以编辑 outerHTML,javascript 重新解释 "&nbsp;"
成为" "
所以对于一般情况,Maxime Lorant 和 Mathew MacLean 的回答会奏效......好吧,对我来说也是如此,但我必须先做一些额外的工作。
我疯了吗?
谢谢大家的帮助
最佳答案
试试这个偷偷摸摸的小变通办法。
<div>"&nbsp;some text"</div>
这里也有回答: How to write out HTML entity name ( , <, >, etc)
关于html - 强制 html 将 ""解释为 nbsp 文本节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22024644/