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

如何使用 ForEach 更改背景的按钮?

如何使用 ForEach 更改背景的按钮?

一只萌萌小番薯 2023-09-21 17:21:18
我想用 JS 创建 4 个按钮,仅使用 ForEach 更改容器的背景。我已经使用 foreach 准备好了 4 个按钮,但背景的颜色没有改变。有什么帮助吗?这是我的代码:let color_ar = ["yellow", "green", "blue", "silver"];let buttons_ar = ["btn btn-warning", "btn btn-success", "btn btn-primary", "btn btn-secondary"];window.onload = function() {    createBtn();}function createBtn() {    buttons_ar.forEach(function(item, i) {        document.querySelector("#id_container").innerHTML += `<button id="id_button" class="${item}">${color_ar[i]}</button>`        document.querySelector("#id_button").addEventListener("click", function() {            i = 0;            document.querySelector("#id_container").style.background = color_ar[i++];        });    })}
查看完整描述

1 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

您使用的id_button是点击,它仅适用于第一项,因为 ID 是唯一的。


这是一种做你想做的事的方法


const color_ar = ["yellow", "green", "blue", "silver"],

  buttons_ar = ["btn btn-warning", "btn btn-success", "btn btn-primary", "btn btn-secondary"];


function createBtn() {

  buttons_ar.forEach((item, i) => {

    document.querySelector("#id_container").innerHTML += `<button id="id_button" class="${item}">${color_ar[i]}</button>`

    document.querySelectorAll('.btn').forEach(el => el.addEventListener('click', e => e.currentTarget.parentElement.style.background = e.currentTarget.textContent))

  })

}


window.addEventListener('load', () => {

  createBtn();

})

<div id='id_container'></div>


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

添加回答

举报

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