我是Javascript的初学者,在这里阅读了几篇文章,但无法让我的代码正常工作。希望你能解释一下解决方案:)
所以基本上我有四组图片,但是我需要在其网址中将所有$_12.JPG
替换为$_57.JPG
,这样我就可以获得更大的图片尺寸(只有分配给{{的图片) 1}} / class="ebay"
)。我需要在浏览器开始阅读页面时执行此操作,不涉及任何事件或按钮。
以下是我的源代码:
id="ebay"
我还想循环这个功能,所以当我有超过4组图片(最多15套)时,javascript仍然可以替换我的URL。
以下是我的尝试:
<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>
答案 0 :(得分:1)
您必须意识到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
中的Elements
)。
请参阅MDN
答案 1 :(得分:0)
错位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;
}
}