jQuery $()。html escapes& -sign

时间:2012-06-01 13:46:37

标签: javascript jquery

var alt = json_data['alt']; // some text
var url = json_data['url']; // some url

var img_url = '<img src=\'/' + url + '?h=100&w=100\' alt=\'' + alt + '\'>';
$('#imagepreview').html(img_url); // translates to <img src="/some_url?h=100&amp;w=100" alt="some_text">

为什么会发生这种情况?如何防止这种情况发生?

3 个答案:

答案 0 :(得分:4)

&amp;实际上是有效的网址,而不是&amp;

答案 1 :(得分:1)

我个人认为不会发生这种情况,但你应该这样做:

var img = $('<img />', {
    src: '/' + url + '?h=100&w=100',
    alt: alt
}).appendTo('#imagepreview');

确保正确完成任何转义,例如alt属性!

答案 2 :(得分:0)

您必须使用\ u0026而不是&amp;