如何在JavaScript中动态更改图像集合的src属性?

时间:2016-07-22 15:30:36

标签: javascript image

我有一个文档,其中包含图像集的特定路径:

<img src="img/xxx.xxx"> // img in this case

我想做的是动态更改它们:

<img src="/new/path/xxx.xxx">

这是我的代码:

  var doc = document,
      img = doc.getElementsByTagName('img'),
      emailUrl = '/img/g',
      imgSrc;

 for (var i = 0; i < img.length; i++) {
    imgSrc = img[i].src;
    imgSrc = imgSrc.replace(emailUrl, '/new/path/');
 }

我介入了调试器并且它似乎没有添加它们?我错过了什么?

5 个答案:

答案 0 :(得分:2)

两个问题:

第一

字符串是不可变的。 replace无法正确更改 。您将结果分配给imgSrc变量,然后......不对其执行任何操作。

第二

'/img/g'不是正则表达式,而是a string。如果你想要regular expression literal,请不要引用它。

答案 1 :(得分:1)

您将新src设置为is_overdue not overdue is_overdue All proportion org A81001 0 2 2 100.0 A81002 1 1 2 50.0 A81003 1 0 1 0.0 All 2 3 5 60.0 ,但不设置为imgSrc。 尝试这样做:

img[i].src
祝你好运!

答案 2 :(得分:1)

您需要将替换重新分配给img.src。正则表达式也不是字符串。

此外,请务必注意,当您使用相对路径时,浏览器可能会填写URL的开头部分。在以下示例中,您可以看到最终结果包含图像相对的完整URL。在设置正则表达式时,这对您来说很重要。

var imgs = document.getElementsByTagName('img'),
  emailUrl = /\/img\//;

for (var i = 0; i < imgs.length; i++) {
  console.log('Before', imgs[i].src);
  imgs[i].src = imgs[i].src.replace(emailUrl, '/new/path/');
  console.log('After', imgs[i].src);
}
<img src="img/xxx.xxx">
<img src="img/xxx.xxx">

答案 3 :(得分:1)

给你fiddle

诀窍是:

img[i].src = imgSrc.replace(emailUrl, '/new/path/');

但要注意拼写错误:文档,而不是文档。

答案 4 :(得分:1)

您需要将HttpResponse.End分配给imgSrc。尝试:

img[i].src