javascript:带有特殊字符的alt属性

时间:2010-09-23 13:52:54

标签: javascript jquery

  

可能重复:
  Alt attribute encoding with JavaScript

我似乎无法在alt标签中使用javascript分配特殊字符,并让它们在任何浏览器中呈现。

没有javascript,alt标签中的特殊字符可以很好地呈现(Pepsi™):

<img id="pic" src="path/to/image.jpg" alt="Pepsi&trade;" />

然而,当你通过javascript或jquery分配这个相同的值时,你会得到(可乐&trade;)。

$("#pic").attr("alt","Coke&trade;")image = document.getElementById('pic'); image.alt="Pepsi&trade;"

此问题存在于chrome和IE6中;我没有尝试过其他浏览器。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

首先,您应该将该文本放在“title”属性中,而不是“alt”。 “alt”属性应包含无法显示图像时显示的文本。 “title”属性提供了渲染代理可以在其认为合适时使用的解释性文本,而天桥文本是其中的主要示例。使用您的示例,“alt”属性可能是“百事可乐徽标”,而“标题”则是花哨的值。 (在这种情况下,没有太大区别,但重点是这两个属性的目的确实完全不同。)

如果您需要通过Javascript获取这些特殊字符,则必须使用\uNNNN之类的Javascript转义提供Unicode值,其中“NNNN”是十六进制数字。我认为商标符号例如是"\u00AE"作为Javascript字符串。

答案 1 :(得分:0)

尝试 -

$( “#PIC”)ATTR( “ALT”, “焦炭\ u2122”);