这在vanilla javascript中是一个循环吗?

这在vanilla javascript中是一个循环吗?,javascript,Javascript,我在做测验。我需要遍历一系列选项,这些选项是,并在正确答案中添加一个单击事件侦听器。在下面的代码中,正确答案是5,但实际上它会改变。因此,我需要将单击事件侦听器添加到第五个 var someFunction = function() { var correctAnswerNo = "5"; var options = optionsContainer.getElementsByTagName("li"); for (var i = 0; i < options.l

我在做测验。我需要遍历一系列选项,这些选项是
  • ,并在正确答案中添加一个单击事件侦听器。在下面的代码中,正确答案是5,但实际上它会改变。因此,我需要将单击事件侦听器添加到第五个
  • var someFunction = function() {
        var correctAnswerNo = "5";
        var options = optionsContainer.getElementsByTagName("li");
    
        for (var i = 0; i < options.length; i++) {
            console.log(i);
            console.log(correctAnswerNo);
            if (correctAnswerNo === i) {
                console.log(this);
                // here is where I will put my event listener 
            }
        }
    }
    
    var someFunction=function(){
    var correctAnswerNo=“5”;
    var options=optionsContainer.getElementsByTagName(“li”);
    对于(变量i=0;i

    当我注销
    correctAnswerNo
    I
    时,它会按预期工作。但是,当我记录此
    时,我会得到未定义。我需要访问此,将单击事件添加到其中

    不要将事件侦听器添加到此
    中,而是将其添加到
    中的
    选项[i]
    中,如果

    您的
    if
    条件如下

    if (correctAnswerNo === i) {
      options[i].addEventListener("click", function() {
        console.log("correct answer");
      });
    }
    

    你不需要循环。只需使用
    options[4]
    获取第五个元素(索引以0开头,这就是为什么4是第五个元素),但实际上它会改变-如果它不是硬编码的,请使用
    options[i]。addEventListener(类型,侦听器[,选项])
    不要将事件侦听器添加到
    ,而是将其添加到
    中的
    选项[i]
    (如果