【发布时间】:2012-12-12 19:50:37
【问题描述】:
请看下面的代码:
在第一个链接中有一个标题属性,其中包含 html 特殊字符 < 后跟“!” (实际上跟在哪个字符后面并不重要)。
当我们使用 jQuery 的 attr() 函数获取该标题属性的值时,html 被破坏(您可以看到,只要以下文本也丢失,就没有打印“
在第二个链接中,唯一的区别是我在< 之后添加了一个空格,现在它可以按预期工作了。
您认为这是 jQuery 中的错误还是我只是不明白?
PS。如果您认为我在做一些奇怪的事情 - 这只是来自某个工具提示插件的一段代码。
HTML:
<a href="#" title="<div style='color:red'>This is the less than sign: <! Now you know it?</div>">This is a link</a><br>
<a href="#" title="<div style='color:red'>This is the less than sign: < ! Now you know it?</div>">This is a link</a><br>
jQuery:
$('a').each(function() {
$('body').append($(this).attr('title')); });
// just to exclude that it's append() function's fault :)
$('body').append("<div style='color:red'>This is the less than sign: <! Now you know it?</div>");
【问题讨论】:
-
属性中包含HTML代码是否有效?
-
我从 jsFiddle 添加了您的代码。关于 SO 的问题和答案应该是完全“独立的”。
-
标题不应包含任何 HTML。有些人确实会悬停链接,然后查看代码。
-
您看到 W3C 标准了吗?看我的回答stackoverflow.com/a/13847609/376535
-
@ErikE: 在属性中包含 escaped 代码是有效的。
标签: javascript jquery html