[[编辑存档]]
如果你想让一个div认为它有一个字符,那么你可以在其父元素上输入contenteditable == true时输入它,看到这个链接: type in empty divs while contenteditable = true?
[[原始问题]]
我正在尝试在我的html中插入“
”,但在解析之后它会打印为“”
我得到--- <div>" some text"</div>
我想-------&gt; <div>" some text"</div>
(其中 
;是文本节点)
我试过插入
" "
和
String.fromCharCode(160)
和
document.createTextNode('\u00A0')
但没有雪茄
修改
当我说我希望它是一个
节点时,我想说的是我希望 
出现在开发者控制台的dom中。我注意到" "
和
的行为不同,因为浏览器似乎不认为" "
包含任何字符
EDIT2
这是我的dom在两个案例的chrome开发人员工具[元素选项卡]上的样子
只是假装这些块是div
第二个div报告有innerHTML = " "
而第一个div甚至没有innerHTML属性
而且我知道你会像“我们说的那样!”使用"&nbsp;"
,但是当我这样做时,浏览器打印字符串" "
而不是创建非中断空间
编辑3 确定大家都不要试图回答我的愚蠢问题了。我正在使用一个contenteditable div并制作一个自定义函数,当用户按下回车键时插入一个新的div。我构造了一个outerHTML字符串,其中包含中间带
的div标记。问题是html会将
解释为" "
,除非您直接设置innerHTML = "&nbsp;"
。这可能是因为当我创建字符串时:
var nbsp = "&nbsp;";
string "<div>+nbsp+</div>
...以便我可以编辑outerHTML,javascript会将"&nbsp;"
重新解释为" "
因此,对于一般情况,Maxime Lorant和Mathew MacLean的答案将起作用......对我而言,但我必须先做一些额外的工作。
我疯了吗?谢谢大家的帮助
答案 0 :(得分:2)
尝试这个偷偷摸摸的小工作。
<div>"&nbsp;some text"</div>
这也得到了回答: How to write out HTML entity name ( , <, >, etc)
答案 1 :(得分:1)
如果要显示HTML实体,则需要使用自己的HTML实体转义&
:&
:
&nbsp; --->
&eacute; ---> é
...