JavaScript 变量从 if / 函数语句内部返回未定义



我不明白为什么我的全局变量在 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每次点击......

最新更新