$("<h2/>", {"class" : "wi wi"+data.today.code}).text(" " + data.city + data.today.temp.now + "F").appendTo(custom_example);
您好,我正在尝试更改上面的代码,在(F)arenheit标记之前添加度数图标。我已经尝试输入+ html("°") +
但它不起作用。我的JS非常粗糙,我希望在我花费太长时间尝试和失败之前,我可以在这里得到快速答案。谢谢!
我希望最终结果能够打印出如下内容:恩西尼塔斯65°F
答案 0 :(得分:5)
特殊字符是必须由反斜杠\
转义的字符,如:
\'
\"
\\
度数°不是特殊字符,你可以按原样写出来。
修改:如果您想使用°F的unicode
,请写下:'\u2109'
。
答案 1 :(得分:0)
Escape Special Characters JavaScript
JavaScript使用\(反斜杠)作为转义字符:
请注意,JSON字符串中不允许使用\ v和\ 0转义。
答案 2 :(得分:0)
首先,学位角色不需要被转义。因此,只需输入"°F"
即可完成工作。
但是,如果您对JS代码的代码页有疑问,可以使用 JavaScript 转义序列。 JS转义序列与HTML转义完全不同。根本不支持十进制值。首先,您必须将176
转换为十六进制:b0
。正确转义的"°F"
等效值为"\xb0F"
。对于平台源代码编辑器的代码页问题,它也可以工作并且更加健壮。
如果您确实要分配HTML代码,则需要使用.html()
功能。但这与.text()
是互斥的。因此,在这种情况下,所有的内容都需要是HTML而不是纯文本。否则会出现HTML注入漏洞。即你需要在data.city
和data.today.temp.now
中正确地转义尖括号和其他一些符号。
JS本身没有内置函数来转义HTML。但是JQuery提供了一个技巧:$('<div/>').text(data.city).html()
将返回适当的转义HTML。有关详细信息,请参阅HTML-encoding lost when attribute read from input field。
我建议您不要使用.html()
,除非您真的需要它,例如如果您想将样式或格式仅应用于文本的部分。