[英]How to send a variable through a onclick event?
我创建了一个数组。 此数组创建具有特定和公共属性的按钮。 将它们附加到div(id=form2)
我给它们点击功能gold_2
。 一切正常,但我无法捕获最终点击的按钮的ID或值。
当我定义btn.onclick=gold_2(value)
来导出变量值时,函数执行链接我已经点击了按钮。 当我定义btn.onclick=gold_2
我无法捕获我点击的按钮ID /值 。
var gold_item = ['CL', 'LR', 'GR', 'TP', 'JH', 'CH', 'HR', 'CK', 'BA', 'BL', 'CP', 'MG', 'XY', 'SC', 'BC', 'PS', 'MS', 'KL', 'DM', 'NP', 'PN', 'DN', 'GC', 'RG', 'CD'];
for (var i = 0; i < gold_item.length; i++) {
var btn = document.createElement("BUTTON");
//btn.innerHTML=goldItem[i];
btn.className = "form2_button";
btn.id = gold_item[i];
btn.value = gold_item[i];
btn.innerHTML = gold_item[i];
var value = gold_item[i];
document.getElementById('form2').appendChild(btn);
btn.onclick = gold_2, 'value';
}
function gold_2() {
var val = document.getElementById(id).value
alert(val);
}
this
和addEventListener
而不传递value
问题是你使用逗号运算符b / w gold_2
和"value"
。 整个表达式将评估到最后一个表达式,即"value"
。
我建议你使用eventListeners而不是直接更改函数
btn.addEventListener('click',gold_2);
第二个问题是在gold_2
中id
undefined
。 您可以使用this
来访问该元素
function gold_2() {
var val = this.value
alert(val);
}
当您将value
设置为元素的值时,您不需要将其作为参数传递。 this
在gold_2
将是一个点击的元素,所以你可以访问它的价值。
如果您仍想将value
变量传递给gold_2
,则可以使用包装函数。 同时删除''
value
btn.onclick = () => gold_2(value);
然后,您还需要接受函数gold_2
的变量
function gold_2(val) {
alert(val);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.