我有一个文档,其中包含图像集的特定路径:
<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/');
}
我介入了调试器并且它似乎没有添加它们?我错过了什么?
答案 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)
答案 4 :(得分:1)
您需要将HttpResponse.End
分配给imgSrc
。尝试:
img[i].src