如何在元素文本中动态添加空格?

3

我希望在DOM元素中插入空格。

例如,我想要更改这个:

<a></a>

转换为此

<a> </a>

如果我手动在DOM元素中添加&nbsp,那么它会将&nbsp渲染为空格。但是当我想要动态添加时,我使用innerText
 a_element.innertText = "&nbsp"

由于这个问题,它不会将&nbsp转换为空格,而是将其呈现为文本(<a>&nbsp</a>)。我该如何解决这个问题?


1
你必须写成&nbsp;而不是&nbsp - nanobash
5
.innerHTML是你需要的吗? - Sanchit
@DaHaKa,你应该把它作为一个答案。这可能很琐碎,但很可能正是OP正在寻找的。 - Dennis Traub
@Sanchit,是的,谢谢!它不适用于innerText,但适用于innerHTML。(但我没有看到&nbsp&nbsp;之间有任何区别,可能是因为浏览器的原因) - evfwcqcg
1
.innerText 接收任何文本并直接输出,不解析 HTML。如果你想使用 HTML 实体,必须使用如上所述的 .innerHTML - Felix Kling
显示剩余2条评论
3个回答

13

使用.innerHTML来编辑特定链接的HTML。

a_element.innerHTML = "&nbsp;"

作为一种预防措施,@Jukkas下面的答案更安全。innerHTML是一种攻击向量。如果用户提供的字符串被放入innerHTML中,他们可以注入脚本标记并执行任何想要的操作。 - Seph Reed

9
HTML实体引用只在HTML解析时处理。无论如何,最好直接将字符放入内容中。如果您不知道如何在撰写环境中键入不间断空格,则可以在JavaScript中使用\xA0\u00A0转义。
a_element.innerText = "\u00A0";

顺便提一下, (不间断空格)根据HTML规范并不是一个空格字符


0

你也可以直接复制想要的空格字符并将其粘贴到你的javascript字符串中。例如,我在我的html中有一个&emsp;空格字符;当我加载页面时,我复制了那个空格并将其粘贴到我的javascript字符串中:

var myString = "Here is &emsp; --> <--";

请注意,这里看起来像是普通的空格,但它会呈现为复制的原始空格。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接