我想将图像源更新为另一页上的另一幅图像。
我正在创建一家用于家具的Squarespace商店。家具有多种季节性材料选择,每6个月选择一次。我希望我的公司能够轻松地更新所有产品的材料集,而不必为每个产品单独进行更改。因此,我的想法是先在每个产品中添加占位符图像,然后使用一个页面描述材料。如果材料页面上的图像更改,所有占位符图像也会更新。
我希望这可以正常工作,但我收到一个错误:
stoff2:740未捕获的语法错误:无效或意外的令牌
此错误指向$('img[alt...
行。
$(document).ready(function() {
var count;
var newSrc;
for (count = 1; count < 5; count++) {
var adress = "http://uk5-shop.com/stoff" + count;
$.get(adress, function(data) {
newSrc = document.getElementById("5cf7ba50095f4e0001e1519c").src;
});
$(‘img[alt = ”stoff” + count]’).src = newSrc;
};
});
答案 0 :(得分:0)
首先,该错误是因为‘
在JS中不是有效字符。 ”
和’
相同。您需要分别使用'
和"
。
但是,您的逻辑还有其他几个问题。
首先,您在AJAX请求之后使用document.getElementById()
来访问响应,但这只会访问当前页面。要解决此问题,请使用函数提供的data
参数来获取响应的HTML,并在其中找到所需的src
属性。
第二,您需要在src
的AJAX回调中更新$.get()
,而不是在其外部,并且jQuery对象也没有{{1} }属性。您需要使用src
或prop()
。
接下来,即使更正后,attr()
选择器中的引号本身也不匹配。您关闭属性值的引号为时过早,并且缺少[alt=...]
来连接+
之后的字符串结尾。
最后,为了避免count
值不是AJAX请求返回时(由于循环完成)所期望的值的问题,您需要使用闭包,或者仅使用{{1} }关键字,假设您要定位的浏览器支持它。
话虽如此,请尝试以下操作:
count
顺便说一句,我建议为此使用AJAX有点浪费。对于加载的每个页面,您都会向服务器发出5个页面请求,以获取某些图像的位置。如果可能的话,我建议您重构此逻辑以获取服务器位置的那些位置,以避免服务器上不必要的负载。