我不明白为什么我的全局变量在if语句/函数中不起作用。
myBtn = ["btn01", "btn02", "btn03", "btn04"];
var i;
var btnId;
for (i = 0; i < myBtn.length; i++) {
if (document.getElementById(myBtn[i])) {
btnId = myBtn[i];
document.getElementById(btnId).addEventListener("click", function() {
btnValue = document.getElementById(btnId).value;
btnName = document.getElementById(btnId).name;
});
}
};
console.log(btnValue);
/* Then continue on to use the values from btnValue and btnName */
这意味着什么;
检查HTML页面中按钮上的ID是否存在
如果存在,则获取以下标签(id =,value =,name =)
然后在上述if语句之外具有3个可用值。
console.log(btnValue);
显示未定义
答案 0 :(得分:0)
我不太了解您要在这里做什么。首先,您需要在函数外部声明变量btnValue,然后在单击时更改其值。其次,当您运行此命令时,将首先运行控制台日志。 Console.log也是一个函数,因此被推到顶部。最后,即使值更改了,也没有什么可以再次使其成为console.log来让您获取该值...。您需要为更改注册一个操作。可能以可观察的形式。或至少在每次单击时将其设置为console.log ...