javascript 替换 url link 循环

javascript replace url link loop

我是 Javascript 的初学者,在这里阅读了几本 post,但我的代码无法正常工作。希望你能解释解决方案:)

所以基本上我有四组图片,但我需要将 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;

    }
}

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

做,

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;
    }
}

你必须意识到 getElementsByClassName returns 是一个 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