为了账号安全,请及时绑定邮箱和手机立即绑定

如何将EventListener添加到querySelectorAll并在触发时获取元素索引?

如何将EventListener添加到querySelectorAll并在触发时获取元素索引?

海绵宝宝撒 2023-09-28 15:32:01
我正在站点菜单中制作背景选择器,当用户单击规范时,它将更改背景图像。图像(触发单选按钮)。我想使用 querySelectorAll(".selected") 来执行此操作,循环它并设置 addEventListener(click, ..) 获取索引(或 id, value)并使用 background_list 数组设置 backgroundImage 。var background_list = ["/images/air-balloon.jpg","/images/mary-christmas.jpg","/images/mountain.jpg","/images/panorama.jpg","/images/plants.jpg","/images/sunset-mountain.jpg","/images/underwater-star.jpg","/images/vinyl-player.jpg"...]<div class="dropdown-background-container">    <div>        <input                              type="radio"            id="image-1"            class="select"            value="1"        >        <label for="image-1">            <img src="/images/air-balloon-small.jpg" alt="Air Balloons">        </label>    </div>    <div>        <input            type="radio"            id="image-2"            class="select"            value="2"        >        <label for="image-2">            <img src="/images/mary-christmas-small.jpg" alt="Mary Christmas">        </label>    </div>例如我有几十张图像document.querySelectorAll(".select").forEach( item => {      item.addEventListener('click', arrow => {      document.body.style.backgroundImage = `url("${background_list[index]}")`    })})有没有办法找到触发的索引(id或值)?您将如何为此实现代码,最简单的解决方案是什么?我是 JS 初学者
查看完整描述

1 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

在使用这些数组迭代函数时,您可以通过添加额外的参数来查找数组中元素的索引(索引是 forEach 的第二个参数):


document.querySelectorAll(".select").forEach((item, index) => { // here

      item.addEventListener('click', arrow => {

      document.body.style.backgroundImage = `url("${background_list[index]}")`

})})


查看完整回答
反对 回复 2023-09-28
  • 1 回答
  • 0 关注
  • 81 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信