如何将没有 class/ID 的图像的 src 从 JavaScript 更改
How to change the src of images which has no class/ID from JavaScript
我想使用 Ajax 将 img
的来源从 JavaScript 更改。 img
标签没有任何 ID 或 类,我不知道如何 select 和 img
以及如何更改 src
。我怎样才能做到这一点?我把我的 HTML 的一部分(它提供了,所以我不能修改)和我的 JavaScript 的一部分。谢谢。
HTML:
<div class="moves">
<button>
<span class="move">Move Name Here</span> <span class="dp"></span>
<img src="icons/fighting.jpg" alt="Pokemon move" />
</button>
<button>
<span class="move">Move Name Here</span> <span class="dp"></span>
<img src="icons/fighting.jpg" alt="Pokemon move" />
</button>
<button>
<span class="move">Move Name Here</span> <span class="dp"></span>
<img src="icons/fighting.jpg" alt="Pokemon move" />
</button>
<button>
<span class="move">Move Name Here</span> <span class="dp"></span>
<img src="icons/fighting.jpg" alt="Pokemon move" />
</button>
</div>
Javascript:
var moveArr = data.moves;
var moves = document.getElementsByClassName("move");
for(var x=0; x < data.moves.length; x++){
moves[x].innerHTML = moveArr[x].name;
img[x].src = "icons\/" + moveArr[x].type + ".jpg"; // I cannot write this part correctly.
}
是的,您没有对要更改其源代码的图像的引用。我会这样做:
var moveArr = data.moves;
var moves = document.getElementsByClassName("move");
for(var x=0; x < data.moves.length; x++){
moves[x].innerHTML = moveArr[x].name;
var img = moves[x].parentNode.getElementsByTagName('img')[0];
img.src = "icons\/" + moveArr[x].type + ".jpg";
}
如果您的页面布局发生变化,您可能需要更改此代码。不过,应该可以为您现在所拥有的工作。
如果每个 span
后跟一个 img
(因为它似乎来自您发布的代码),那么 .move
项和图像的数量相同 - - 它们匹配 - 然后您可以使用 DOM images collection 来定位每个图像的 src
,如下所示:
var moveArr = data.moves;
var moves = document.getElementsByClassName("move");
for(var x = 0; x < data.moves.length; x++){
moves[x].innerHTML = moveArr[x].name;
document.images[x].src = "icons\/" + moveArr[x].type + ".jpg";
}
我想使用 Ajax 将 img
的来源从 JavaScript 更改。 img
标签没有任何 ID 或 类,我不知道如何 select 和 img
以及如何更改 src
。我怎样才能做到这一点?我把我的 HTML 的一部分(它提供了,所以我不能修改)和我的 JavaScript 的一部分。谢谢。
HTML:
<div class="moves">
<button>
<span class="move">Move Name Here</span> <span class="dp"></span>
<img src="icons/fighting.jpg" alt="Pokemon move" />
</button>
<button>
<span class="move">Move Name Here</span> <span class="dp"></span>
<img src="icons/fighting.jpg" alt="Pokemon move" />
</button>
<button>
<span class="move">Move Name Here</span> <span class="dp"></span>
<img src="icons/fighting.jpg" alt="Pokemon move" />
</button>
<button>
<span class="move">Move Name Here</span> <span class="dp"></span>
<img src="icons/fighting.jpg" alt="Pokemon move" />
</button>
</div>
Javascript:
var moveArr = data.moves;
var moves = document.getElementsByClassName("move");
for(var x=0; x < data.moves.length; x++){
moves[x].innerHTML = moveArr[x].name;
img[x].src = "icons\/" + moveArr[x].type + ".jpg"; // I cannot write this part correctly.
}
是的,您没有对要更改其源代码的图像的引用。我会这样做:
var moveArr = data.moves;
var moves = document.getElementsByClassName("move");
for(var x=0; x < data.moves.length; x++){
moves[x].innerHTML = moveArr[x].name;
var img = moves[x].parentNode.getElementsByTagName('img')[0];
img.src = "icons\/" + moveArr[x].type + ".jpg";
}
如果您的页面布局发生变化,您可能需要更改此代码。不过,应该可以为您现在所拥有的工作。
如果每个 span
后跟一个 img
(因为它似乎来自您发布的代码),那么 .move
项和图像的数量相同 - - 它们匹配 - 然后您可以使用 DOM images collection 来定位每个图像的 src
,如下所示:
var moveArr = data.moves;
var moves = document.getElementsByClassName("move");
for(var x = 0; x < data.moves.length; x++){
moves[x].innerHTML = moveArr[x].name;
document.images[x].src = "icons\/" + moveArr[x].type + ".jpg";
}