如果/ function语句,则JavaScript变量从内部返回未定义

时间:2018-10-13 23:32:17

标签: javascript

我不明白为什么我的全局变量在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);显示未定义

1 个答案:

答案 0 :(得分:0)

我不太了解您要在这里做什么。首先,您需要在函数外部声明变量btnValue,然后在单击时更改其值。其次,当您运行此命令时,将首先运行控制台日志。 Console.log也是一个函数,因此被推到顶部。最后,即使值更改了,也没有什么可以再次使其成为console.log来让您获取该值...。您需要为更改注册一个操作。可能以可观察的形式。或至少在每次单击时将其设置为console.log ...