在JavaScript中通过标记名获取多个元素?

在JavaScript中通过标记名获取多个元素?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,您好,我正在尝试创建一个图像库,例如,让我们假设我有多个图像,我想在使用JavaScript悬停在它们上方时更改它们的不透明度。我知道这在CSS中是可能的,但我正在尝试使用JavaScript来实现这一点。我尝试使用标记名方法获取元素,但问题是它只能访问一个元素,所以我可以做到这一点,谢谢尝试以下方法: var elements = document.getElementsByTagName("img"); Array.prototype.forEach.call(elements, func

您好,我正在尝试创建一个图像库,例如,让我们假设我有多个图像,我想在使用JavaScript悬停在它们上方时更改它们的不透明度。我知道这在CSS中是可能的,但我正在尝试使用JavaScript来实现这一点。我尝试使用标记名方法获取元素,但问题是它只能访问一个元素,所以我可以做到这一点,谢谢

尝试以下方法:

var elements = document.getElementsByTagName("img");

Array.prototype.forEach.call(elements, function (e) {
    // Here you can access each image individually as 'e'.
});

悬停时,获取该图像的ID。然后循环浏览上面的所有图像示例并设置它们的不透明度。如果元素与您单击的元素相等,请记住,您只需获取ID即可使用它,只需使用continue;跳到下一个元素即可

您必须收集图像元素,如

var images = document.getElementsByTagName("img");
那你就得像我一样

Array.prototype.forEach.call(images, e => e.addEventListener("mouseover", function( event ) { do something}));

可以显示您尝试的代码吗?getElementsByTagName返回节点的集合,而不是一个。你能发布你目前的代码吗?元素是一个HTMLCollection,你不能直接使用数组函数。您最好喜欢Array.prototype.forEach.callelements,callback这不起作用。getElementsByTagName返回节点列表,而不是数组。您可以将其转换为数组或使用for循环。@Redu已修复,谢谢。