我正在尝试将图像的 src 属性设置为我也在 JS 中生成的 URL。 URL 包含多个用“&”链接的参数,但是当将元素的外部 HTML 作为字符串值获取时,所有“&”都被“&”替换,使得 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 属性会显示原始字符串,因此我相信在访问 externalHTML 时该值已被编码。
最佳答案
这只是使用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>
关于JavaScript 外部 HTML 编码 URL 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44606250/