我是Java的新手。我正在尝试创建一个单位换算计算器。我想遍历一个表x并添加一个onclick,该onclick输出 clicked 按钮的值。
我已经能够返回正在遍历的NodeList。之后,我添加一个onclick。每次单击按钮都会输出列表中最后一个按钮的值。
var x = document.getElementsByName("Scalar")
var out = document.getElementById("output")
function Edit(Input){
out.innerHTML = Input;
}
var i;
for (i = 0; i < x.length; i++) {
out.innerHTML = out.innerHTML + x[i].name;
var b = x[i];
b.onclick = function() {
Edit(out.innerHTML + b.value)
}
}
<input type = "button" id="Scalar" value = "K" name = "Scalar"/>
<div id="output">
</div>
如果我单击任何按钮,我的输出将是 列表中最后一个按钮的值(DDDDDD)
答案 0 :(得分:0)
变量b被覆盖,因为它在同一代码块中。 要获得正确的值,请使用this.value而不是b.value。 避免在循环内创建函数,覆盖变量。 使用addeventlistener代替onclick。 var x = document.getElementsByName(“ Scalar”)
var out = document.getElementById("output")
function Edit(){
out.innerHTML = this.value
}
for (i = 0; i < x.length; i++) {
x[i].addEventListener( 'click' , Edit );
}