我正在尝试将图像的src属性设置为我也在JS中生成的URL。该URL包含几个用“&”链接的参数,但是当将元素的外部HTML作为字符串值获取时,所有“&”被“& amp;取代,使URL无用。为什么会发生这种情况?我是否必须更换所有发生的事件才能修复它?
var img = $("<img>");
img.attr("src","/test?param1=1¶m2=2");
console.log(img[0].outerHTML); //printing <img src="/test?param1=1&param2=2">
从该对象获取src属性会显示原始字符串,所以我相信在访问outerHTML时会对该值进行编码。
答案 0 :(得分:0)
这只是使用outerHTML记录img的结果,因为该函数在输出字符串之前将其序列化。在下面的示例中,我只是记录元素,您将看到图像源是正确的。此外,如果您在页面上输出图像,它也有正确的来源。
因此,除了记录输出的方式之外,您的代码没有任何问题。
var img = $("<img>");
img.attr("src","http://www.placecage.com/gif/284/196?param1=1¶m2=2");
console.log(img[0]);
$("div").append(img);
<div></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>