以JavaScript中创建的HTML元素为目标
这是我自己的第一个项目,当我试图针对使用JavaScript创建的一组按钮时,我遇到了一个问题。事件侦听器只有在我按下创建的第一个按钮时才会启动。它不会记录任何其他按钮的点击。我错过了什么?任何帮助都将不胜感激 JavaScript:以JavaScript中创建的HTML元素为目标,javascript,dom,dom-events,Javascript,Dom,Dom Events,这是我自己的第一个项目,当我试图针对使用JavaScript创建的一组按钮时,我遇到了一个问题。事件侦听器只有在我按下创建的第一个按钮时才会启动。它不会记录任何其他按钮的点击。我错过了什么?任何帮助都将不胜感激 JavaScript: function creatButtons() { for ( var i = 65; i <= 90; i++ ) { let letter = String.fromCharCode( i ); let butto
function creatButtons() {
for ( var i = 65; i <= 90; i++ ) {
let letter = String.fromCharCode( i );
let button = document.createElement( "button" );
button.id="buttons"
button.innerHTML = letter;
buttonHolder.appendChild(button)
}
}
creatButtons()
// Event listeners
document.getElementById("buttons").addEventListener('click',function(){
console.log("testing")
});
函数创建按钮(){
对于(var i=65;i您没有定义buttonHolder
)
function creatButtons() {
var buttonHolder = document.getElementById('buttonHolder'); // add this line
for ( var i = 65; i <= 90; i++ ) {
let letter = String.fromCharCode( i );
let button = document.createElement( "button" );
button.id="buttons"
button.innerHTML = letter;
buttonHolder.appendChild(button)
}
}
函数创建按钮(){
var buttonHolder=document.getElementById('buttonHolder');//添加此行
对于(var i=65;i您可以简单地使用而不是id
属性。对于onclick
事件,您也可以调用函数passthis
来获取所单击的字母
此外,还可以使用方法将所有字符附加到按钮固定器
演示:
函数创建按钮(){
let buttonHolder=document.querySelector(“#按钮固定器”)
对于(var i=65;i)这是因为多个元素不能具有相同的唯一ID。谢谢,我省略了该代码,但我确实在忘记添加的代码顶部有一个buttonHolder变量。我甚至尝试使用class而不是ID,但它仍然只针对第一个按钮created@dgm1102您需要为您的dyn使用onclick
功能友好创建的按钮。请使用我提供的代码JAVASCRIPT
。它会很好地工作。让我知道。好吧,这很有魅力,我知道你所做的,直到你在函数中传递它。但是谢谢,我会研究它,并弄清楚发生了什么。谢谢你的帮助help@dgm1102很高兴听你这么说。编码快乐。为什么forEach
?不管怎样,它的性能较慢-老式的for loop
性能更快。理论上,for loop
必须返回一些东西,forEach
不需要。这是唯一的区别
function creatButtons() {
var buttonHolder = document.getElementById('buttonHolder'); // add this line
for ( var i = 65; i <= 90; i++ ) {
let letter = String.fromCharCode( i );
let button = document.createElement( "button" );
button.id="buttons"
button.innerHTML = letter;
buttonHolder.appendChild(button)
}
}