html - 强制 html 将 ""解释为 nbsp 文本节点

标签 html dom whitespace line-breaks

[[为存档编辑]]

如果你想让一个 div 认为它里面有一个字符,这样你就可以在它的父元素上输入 contenteditable == true ,请参见这个链接: type in empty divs while contenteditable = true?

[[原始问题]]

我试图在我的 html 中插入一个“ ”,但在解析后它打印为一个“”

我得到 --- <div>" some text"</div>
我要 ------> <div>"&nbsp;some text"</div> (其中 &nbsp ; 是文本节点)

我试过插入
"&nbsp;"
String.fromCharCode(160)
document.createTextNode('\u00A0')
但是没有雪茄

Dom高手请赐教

编辑:
当我说我希望它成为 &nbsp;节点我想说的是我想要 &nbsp出现在开发者控制台的 dom 中。我注意到 " " 的行为和 &nbsp;不同,因为浏览器似乎没有考虑 " "包含任何字符

edit2
对于这两种情况,这是我的 dom 在 chrome 开发人员工具 [elements 选项卡] 上的样子 img

假装这些 block 是div

第二个 div 报告有 innerHTML = "&nbsp;"
而第一个 div 甚至没有 innerHTML 属性

我知道你们都会说“这就是我们所说的!”使用 "&amp;nbsp;" ,但是当我这样做时,浏览器会打印字符串 "&nbsp;"而不是制作不间断空间

edit 3 好的,每个人都不要试图回答我的愚蠢问题。我正在使用一个 contenteditable div 并制作一个自定义函数,当用户按下 enter 时插入一个新的 div。我构建了一个包含带有 &nbsp; 的 div 标签的 outerHTML 字符串在中间。问题是 html 解释 &nbsp;作为" "除非你直接设置 innerHTML = "&ampnbsp;" .这可能是因为当我制作字符串时:

var nbsp = "&ampnbsp;";
string "<div>+nbsp+</div>

...以便我可以编辑 outerHTML,javascript 重新解释 "&ampnbsp;"成为" "

所以对于一般情况,Maxime Lorant 和 Mathew MacLean 的回答会奏效......好吧,对我来说也是如此,但我必须先做一些额外的工作。

我疯了吗?

谢谢大家的帮助

最佳答案

试试这个偷偷摸摸的小变通办法。

 <div>"&amp;nbsp;some text"</div> 

这里也有回答: How to write out HTML entity name (&nbsp;, &lt;, &gt;, etc)

关于html - 强制 html 将 ""解释为 nbsp 文本节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22024644/

相关文章:

javascript - Dom函数,将HTML插入到dom中替换所有内容

itextsharp - 如何在 iTextSharp 中使用不间断空格

css - 带有相邻选择器的空白

javascript - 最初加载时 C3 图表尺寸太大

html - 是否可以更改 HTML 输入标记中文本的大小?

jquery - 所选元素在 html dom 中的路径是什么?

asp.net - 寻找简单的基于网络的表单设计器的示例

html - IE10+ 中的 CSS3 过渡缓动不起作用

html - 无法在特定的 div 中向上移动此文本

javascript - 从字符串中提取唯一字符并保留字符串之间的空格