将图片来源更改为其他页面上的图片

时间:2019-06-05 13:20:57

标签: javascript jquery html src alt

我想将图像源更新为另一页上的另一幅图像。

我正在创建一家用于家具的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;
  };
});

1 个答案:

答案 0 :(得分:0)

首先,该错误是因为在JS中不是有效字符。 相同。您需要分别使用'"

但是,您的逻辑还有其他几个问题。

首先,您在AJAX请求之后使用document.getElementById()来访问响应,但这只会访问当前页面。要解决此问题,请使用函数提供的data参数来获取响应的HTML,并在其中找到所需的src属性。

第二,您需要在src的AJAX回调中更新$.get() ,而不是在其外部,并且jQuery对象也没有{{1} }属性。您需要使用srcprop()

接下来,即使更正后,attr()选择器中的引号本身也不匹配。您关闭属性值的引号为时过早,并且缺少[alt=...]来连接+之后的字符串结尾。

最后,为了避免count值不是AJAX请求返回时(由于循环完成)所期望的值的问题,您需要使用闭包,或者仅使用{{1} }关键字,假设您要定位的浏览器支持它。

话虽如此,请尝试以下操作:

count

顺便说一句,我建议为此使用AJAX有点浪费。对于加载的每个页面,您都会向服务器发出5个页面请求,以获取某些图像的位置。如果可能的话,我建议您重构此逻辑以获取服务器位置的那些位置,以避免服务器上不必要的负载。