jquery变量中有趣的html毛刺与&,/等字符有什么关系?

时间:2010-01-03 15:08:24

标签: javascript html

我正在尝试在jjery函数在ajax请求之后返回的div内容周围添加html。它确实有用,并添加了一些我添加的html代码但是在使用addtnl html提交“新”修改后的数据时...它删除了这个“& aoe = 1& q = 90”和其他部分包含&的html代码符号和//?

var url_contents = $('#url_contents').html();
var url_image = $("#imagesz").find('img').attr('src');
var addtnl = '<br\/><table width="100%" border="0" cellspacing="0" cellpadding="0">tr><td valign="top" align="left">' + url_contents + '<\/td><td valign="top" align="right"><img src="http:\/\/mydomain.com\/thumb\/?src=' + url_image + '&aoe=1&q=90" border="0" style="max-width:125px;"><\/td><\/tr><\/table>';

之前从未尝试过,但需要以这种方式进行设置,以便将图像缓存在我的服务器上,而不是从我的函数从中提取数据的网站中提取图像。不太确定我做错了什么?

3 个答案:

答案 0 :(得分:2)

尝试将&更改为&amp;

var url_contents = $('#url_contents').html();
var url_image = $("#imagesz").find('img').attr('src');
var addtnl = '<br /><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td valign="top" align="left">' + url_contents + '</td><td valign="top" align="right"><img src="http://mydomain.com/thumb/?src=' + url_image + '&amp;aoe=1&amp;q=90" border="0" style="max-width:125px;"></td></tr></table>';

顺便说一下:我认为你不需要转义正斜杠(/):而不是\/,你可以写/

答案 1 :(得分:2)

也许您需要在图像源属性

上调用encodeURI
' ...<img src=' + encodeURI('http://mydomain.com/thumb/?src=' + url_image + '&amp;aoe=1&amp;q=90') + ' border="0" style... '

答案 2 :(得分:2)

您需要对参数中的值进行URL编码,然后您需要对整个URL进行HTML编码。如果src值中没有需要HTML编码的字符,则只需要对&amp;编码进行HTML编码。字符:

...<img src="http://mydomain.com/thumb/?src=' + encodeURI(url_image) + '&amp;aoe=1&amp;q=90" border="0" style="max-width:125px;">...