javascript替换url链接循环

javascript替换url链接循环,javascript,html,loops,url,replace,Javascript,Html,Loops,Url,Replace,我是Javascript的初学者,在这里读过几篇文章,但我的代码无法正常工作。希望您能解释解决方案:) 因此,基本上我有四组图像,但我需要将URL中的所有$\u 12.JPG替换为$\u 57.JPG,以便获得更大尺寸的图像(仅分配给class=“ebay”/id=“ebay”)。我需要在浏览器开始读取页面时执行此操作,不涉及任何事件或按钮 以下是我的源代码: <div> <img class="ebay" id="ebay" u="image" src="http://i.e

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

因此,基本上我有四组图像,但我需要将URL中的所有
$\u 12.JPG
替换为
$\u 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;

    }
}
window.onload=function(){
对于(var i=0;i
错误放置
var currentLink=document.getElementByClassName('ebay')

window.onload=function(){
var currentLink=document.getElementsByClassName('ebay');
对于(var i=0;i
您必须意识到
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
中有一个输入错误(您缺少
元素中的
s


请参阅

@Rakesh_Kumar不,它不会,它返回(正确写入时)一个对象。请注意,从技术上讲,
窗口。onload
是一个事件。。。实际上,你似乎很接近解决方案…@Teemu不是HTMLCollection是元素的集合..那么说数组?它不是数组,所说的对象没有像
push
pop
等方法。@Teemu如果是对象的话。。它是如何支持<代码>长度>代码>属性的?因为您已经做了键入错误<代码> GETelEngByCype No.<代码>,而不是<代码> GETelEngsByCube No.<代码>…谢谢,@ RaksHukKuMAR.很高兴它有帮助,请考虑将其投票并标记为正确答案。
var currentLinks = document.getElementsByClassName('ebay');

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