我是Java的新手。我正在尝试创建一个单位换算计算器。我想遍历表x并添加一个onclick,以输出单击按钮的值。
我已经能够返回正在遍历的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)
由于变量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 );
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句