javascript替换url链接循环

javascript replace url link loop

本文关键字:循环 链接 url 替换 javascript      更新时间:2023-12-08

我是Javascript的初学者,在这里读了几篇文章,但我的代码无法工作。希望你能解释一下解决方案:)

所以基本上我有四组图像,但我需要替换它们URL中的所有$_12.JPG$_57.JPG,这样我就可以获得更大尺寸的图片(只有分配给class="ebay"/id="ebay"的图像)。我需要在浏览器开始读取页面时执行此操作,不涉及事件或按钮。

以下是我的源代码:

<div>
<img class="ebay" id="ebay" u="image" src="http://i.ebayimg.com/00/s/NzgwWDc4MA==/z/neAAAOSwrklU28I8/$_12.JPG?set_id=880000500F">
<img u="thumb" src="http://i.ebayimg.com/00/s/NzgwWDc4MA==/z/neAAAOSwrklU28I8/$_12.JPG?set_id=880000500F">
</div>
<div>
<img class="ebay" id="ebay" u="image" src="http://i.ebayimg.com/00/s/NzgwWDc4MA==/z/r8cAAOSwNSxU28I9/$_12.JPG?set_id=880000500F">
<img u="thumb" src="http://i.ebayimg.com/00/s/NzgwWDc4MA==/z/r8cAAOSwNSxU28I9/$_12.JPG?set_id=880000500F">
</div>
<div>
<img class="ebay" id="ebay" u="image" src="http://i.ebayimg.com/00/s/NzgwWDc4MA==/z/HLgAAOSwPhdU28I-/$_12.JPG?set_id=880000500F">
<img u="thumb" src="http://i.ebayimg.com/00/s/NzgwWDc4MA==/z/HLgAAOSwPhdU28I-/$_12.JPG?set_id=880000500F">
</div>
<div>
<img class="ebay" id="ebay" u="image" src="http://i.ebayimg.com/00/s/NzgwWDc4MA==/z/6VkAAOSwPYZU28I-/$_12.JPG?set_id=880000500F">
<img u="thumb" src="http://i.ebayimg.com/00/s/NzgwWDc4MA==/z/6VkAAOSwPYZU28I-/$_12.JPG?set_id=880000500F">
</div>

我也喜欢循环这个函数,所以当我有超过4组图片(最多15组)并且javascript仍然可以为我替换URL时。

以下是我尝试过的:

window.onload = function() {
    for ( var i = 0; i < currentLink.length; i++) {
    var currentLink=document.getElementByClassName('ebay');
    var newLink = currentLink.src.replace('$_12.JPG','$_57.JPG');
    currentLink.src = newLink;
    }
}

您必须意识到getElementsByClassName返回的是HTMLCollection,而不是单个元素。因此,您不能简单地通过访问集合的.src属性来更改集合中的所有元素。

您需要对集合进行迭代才能做到这一点:

var currentLinks = document.getElementsByClassName('ebay');
Array.prototype.forEach.call(currentLinks, function(currentLink) {
    var newLink = currentLink.src.replace('$_12.JPG','$_57.JPG');
    currentLink.src = newLink;
});

此外,您的getElementByClassName中有一个拼写错误(Elements中缺少s)。

参见MDN

var currentLink=document.getElementByClassName('ebay'); 的错位

Do,

window.onload = function() {
    var currentLink=document.getElementsByClassName('ebay');
    for ( var i = 0; i < currentLink.length; i++) { 
    var newLink = currentLink[i].src.replace('$_12.JPG','$_57.JPG');
    currentLink[i].src = newLink;
    }
}