javascript - JavaScript 变量从 if / function 语句内部返回 undefined
问题描述
我不明白为什么我的全局变量在 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 */
它的目的是什么;
检查按钮上的 ID 是否存在于 HTML 页面中
如果存在则获取以下标签 (id=, value=, name=)
然后在上面的 if 语句之外使用 3 个值。
显示console.log(btnValue);
未定义
解决方案
我真的不明白你想在这里得到什么。首先,您需要在函数之外声明变量 btnValue,然后在单击时更改其值。其次,当您运行它时,控制台日志首先运行。Console.log 也是一个函数,因此它被推到顶部。最后,即使值发生变化,也没有什么可以再次使 console.log 让您获得该值....您需要为更改注册一个操作。可能以可观察的形式出现。或者至少在每次点击时让它成为 console.log ......
推荐阅读
- c - 将一定数量的字符从一个指针复制到另一个
- byte-buddy - 获取超类之一中受保护字段的 FieldDescription
- c# - 抽象类构造函数调用可重写方法
- arrays - 如何更改数组索引处元素的背景颜色?
- matlab - 一次从结构中分配数据还是多次提取数据更有效?
- c++ - 如何使用 set operator-> 返回非 const 对象
- selenium-webdriver - 无论为每种测试方法设置的优先级如何,我如何按顺序运行类?
- split - 是否可以在 PowerBI 中将一个表分成两个表?
- android - Firebase 短信验证更改发件人姓名
- android - gradle 中的错误:org.gradle.internal.UncheckedException: