我不明白为什么我的全局变量在 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=,值=,名称=(
然后让 3 个值在上面的 if 语句之外可用。
console.log(btnValue);
显示未定义
我真的不明白你想在这里得到什么。首先,您需要在函数外部声明变量 btnValue,然后在单击时更改其值。其次,当您运行此程序时,控制台日志首先运行。控制台.log也是一个功能,因此它被推到了顶部。最后,即使值发生变化,也没有什么可以控制台.log再次让您获得该值......您需要为更改注册操作。可能以可观察量的形式出现。或者至少让它成为控制台.log每次点击......