Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在for循环(JS)中捕获this.id_Javascript - Fatal编程技术网

Javascript 在for循环(JS)中捕获this.id

Javascript 在for循环(JS)中捕获this.id,javascript,Javascript,HTML 如果要在外部访问,则不应使用let-inside函数。应该是 if (buttonId == 1) { // do this } 您需要在函数外部定义buttonId变量: const button=document.getElementsByClassName'button'; 让buttonId; 功能选择按钮{ buttonId=this.id 控制台。记录“您选择按钮”+按钮ID; checker函数; }; 对于var i=0;i

HTML

如果要在外部访问,则不应使用let-inside函数。应该是

if (buttonId == 1) {
   // do this
}

您需要在函数外部定义buttonId变量:

const button=document.getElementsByClassName'button'; 让buttonId; 功能选择按钮{ buttonId=this.id 控制台。记录“您选择按钮”+按钮ID; checker函数; }; 对于var i=0;i按钮2功能之外的位置?您的问题使它看起来像是在添加事件侦听器之后立即有一个if语句……因此它永远不会匹配,因为if语句将在用户可以单击任何内容之前运行。
const button = document.getElementsByClassName('button');

function chooseButton() {
    // works
    let buttonId = this.id;
    console.log('You choose button' + buttonId);
};

// Check for button click
for (var i = 0; i < button.length; i++) {
    button[i].addEventListener('click', chooseButton, false);
}
if (buttonId == 1) {
   // do this
}
let  buttonId;
function chooseButton() {
    // works
    buttonId = this.id;
    console.log('You choose button' + buttonId);
};