设置HTML"标题" JS的属性不会渲染&

时间:2016-01-25 21:26:34

标签: javascript html google-chrome title

在title属性中使用&符号的正确方法是什么?我原以为你应该使用&,但它会根据它是在原始HTML中设置还是用JS修改而提供不同的行为。

Chrome中的工具提示呈现(版本47.0.2526.106(64位))和Safari(版本9.0.2(11601.3.9)):

enter image description here with JS

https://jsfiddle.net/davegaeddert/femm9b96/

3 个答案:

答案 0 :(得分:2)

&表示HTML中的&

当您使用DOM API直接操作DOM时,

&表示&

如果您不编写HTML,请不要使用HTML实体。

答案 1 :(得分:0)

根据您的设置方式,该方法会有所不同。在原始HTML中,你必须逃避&符号,你的小提琴正确地做到了:

title="&"

在JavaScript中,您只需在字符串中使用"&"

jQuery("#with-js").attr("title","&");

答案 2 :(得分:0)

那是因为setAttribute不会将属性解析为HTML。请参阅Node.setAttribute

的规范

直接在HTML中,它将被解析为HTML实体

<强>摘录

  

这个值是一个简单的字符串;它没有被解析,因为它被设置。因此,任何标记(例如被识别为实体引用的语法)都被视为文字文本

https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-F68F082