javascript - 我向新按钮添加了 onclick 属性,但它仅适用于旧按钮

标签 javascript html

所以我对编码还是个新手,当我发现一些东西可能是我有点愚蠢并且不完全理解发生了什么但我想我应该来这里问时,我只是编写了相当随机的东西,为什么创建的生成按钮没有将“test”记录到控制台,但原始按钮却记录了“test”,我做错了什么?

function newButton() {
  var btn = document.createElement("button");
  btn.id = "button";
  var btnText = document.createTextNode("Click me");
  btn.appendChild(btnText);
  document.body.appendChild(btn);
  document.getElementById("button").onclick = console.log("test");
}
<button id="addButton" onclick="newButton();">Add a button</button>

非常感谢

最佳答案

function newButton() {
  var button = document.createElement("button");
  button.innerHTML = "Click Me";

  // you have a reference to the button here, so add a handler to it
  button.addEventListener('click', () => console.log('test'));

  document.querySelector('#newButtons').appendChild(button);
}
<button id="addButton" onclick="newButton();">
    Add a button</button>
<div id="newButtons"></div>

关于javascript - 我向新按钮添加了 onclick 属性,但它仅适用于旧按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45313390/

相关文章:

javascript - Chrome 图像预加载不适用于首次图像加载

javascript - IE8 不触发 OnClick 事件,但在 Firefox 中工作正常

javascript - 不使用扩展运算符替换对象

javascript - Material UI 自动完成下拉位置

html - 边框与链接上方的文本重叠

javascript - 从值设置背景

html - 使用 HTML5 输入模式匹配字符串但不匹配空格

javascript - 搜索页面的客户端和服务器端(ajax)渲染之间的区别,涉及 SEO

javascript - 如何将 unicode 字符转换为 svg,然后转换为 favicon

css - hubspot 和 bootstrap 主题问题