4

我一直在尝试使用 JS 动态设置文本输入的内容,我遇到的问题是我不能让浏览器呈现特殊符号而不是字符,例如

document.getElementById("textField").value = "nbsp";

不是显示空间而是显示  ,有人知道吗?

非常感谢

4

5 回答 5

3

您似乎想在 JavaScript 字符串文字中输入特殊字符,例如 NO-BREAK SPACE。您可以直接执行此操作,前提是正确声明了包含 JavaScript 代码的文件的字符编码,无论如何都应该这样:

document.getElementById("textField").value = ' ';

这里撇号之间的字符是真正的 NO-BREAK SPACE 字符。在渲染中,它通常与普通 SPACE 没有区别,但效果不同。同样,您可以编写例如

document.getElementById("textField").value = 'Ω';

直接使用希腊字母大写 omega。

如果您不知道如何输入这些字符(例如,通过 Windows CharMap 程序)或者您无法控制字符编码问题,您可以使用 JavaScript Unicode 转义符号来处理字符,例如

document.getElementById("textField").value = '\u00A0'; // no-break space

或者

document.getElementById("textField").value = '\u03A9'; // capital omega

对于 Unicode 编号小于 0x100 的一小组字符,您可以选择使用\x转义符,例如,'\xA0'而不是'\u00A0'. (但如果你不知道这一点,最好学会使用通用\u转义。)

于 2013-09-13T10:22:29.593 回答
1

 是一个 HTML 实体,您不能将 HTML 实体放在这样的文本字段中。


尝试使用 unicode,如下所示:

document.getElementById("textField").value = '\xA0';
于 2013-09-13T06:58:40.870 回答
0
document.getElementById("textField").value = " ";
于 2013-09-13T06:55:24.290 回答
0

你应该使用“”而不是“nbsp”

于 2013-09-13T06:57:30.113 回答
0

使用 jquery 和这个怎么样:

$("#textField").html('&nbsp').text()

或者更笼统地说:

$(element).html(encodedString).text()
于 2013-09-13T06:59:29.220 回答