使用 JavaScript 更改按钮的值

Changing the value of buttons with JavaScript

本文关键字:按钮 JavaScript 使用      更新时间:2023-09-26

每当我点击某个字母时,我希望从开头value的第一个插槽更改为我点击value字母。我把letter.onclick = letterClick(this);放到for循环中是否正确,或者我应该以其他方式实现它。另外,letterClick()函数应该包含什么?

// Makes slots and letters for the chosen word.
function maker() {
    for (i=0; i<word.length; i++) {
        var slot = document.createElement("input");
        var letter = document.createElement("input");
        var letters=(shuffledWord).split("");
        slot.type = "submit";
        slot.value = "";
        slot.id = "slot" + i;
        slot.setAttribute('id', 'slot');
        letter.type = "submit";
        letter.value = letters[i];
        letter.id = "letter" + i;
        letter.onclick = letterClick(this);
        letter.setAttribute('id', 'letter');
        document.getElementById("slotbar").appendChild(slot);
        document.getElementById("letterbar").appendChild(letter);
    }
}

不是真的,this指的是你运行方法的上下文maker。因此,大多数情况下,您将其作为窗口,并且您不希望在绑定 onClick 处理程序时调用该函数。它应该是一个函数引用。

尝试

 letter.onclick = letterClick.bind(this, letter); 

现在,该函数将使用您的第一个参数作为该字母元素进行调用。

当你这样做时

letter.onclick = letterClick(this);

立即调用函数并将其结果设置为处理程序,即如果它不返回另一个真正的处理程序的函数 ref,它将无法工作。