首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >addEventListener()和createElement()

addEventListener()和createElement()
EN

Stack Overflow用户
提问于 2020-03-06 19:03:54
回答 1查看 531关注 0票数 1

我想问一下如何对我用createElement()创建的元素执行addEventListner()。

我在我的项目中有一个添加按钮,当我点击它时,它会创建另一个添加按钮,并继续使用该按钮创建添加按钮。

但是我的第一个按钮可以工作,并且不断地创建新的按钮,但是其他的按钮什么也不做。

这是我的代码。

代码语言:javascript
复制
const addBtn = document.querySelector('.button');
const total = document.getElementById('amount-total');



addBtn.addEventListener('click', addButton);


let counter = 0;
function addButton(){
    counter++;

    let newDiv = document.createElement('div');
    newDiv.id = 'new-container' + counter;
    total.parentNode.insertBefore(newDiv, total)


    let createBtn = document.createElement('button');
    createBtn.innerHTML = '+';
    createBtn.className = 'button';

    newDiv.appendChild(createBtn);
}

但它不起作用,所以我尝试了querySelectorAll。

代码语言:javascript
复制
const addBtns = document.querySelectorAll('.button');
addBtns.forEach(btn => btn.addEventListener('click', addButton))

我刚接触javascript,非常感谢你能帮我解决这个问题。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-06 19:33:24

如果我理解正确的话,您应该在函数addbutton()中添加addEventListener('click', addButton)。通过这种方式,您还可以在每次单击添加的按钮时创建一个新按钮。你的代码:

代码语言:javascript
复制
const addBtn = document.querySelector('.button');
const total = document.getElementById('amount-total');



addBtn.addEventListener('click', addButton);


let counter = 0;

function addButton() {
  counter++;

  let newDiv = document.createElement('div');
  newDiv.id = 'new-container' + counter;
  total.parentNode.insertBefore(newDiv, total)


  let createBtn = document.createElement('button');
  createBtn.innerHTML = '+';
  createBtn.addEventListener('click', addButton); //added this line here!
  createBtn.className = 'button';

  newDiv.appendChild(createBtn);
}

希望这能帮助你理解。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60562776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档