使用javascript/jQuery进行索引5的循环迭代

使用javascript/jQuery进行索引5的循环迭代,javascript,jquery,iteration,logic,Javascript,Jquery,Iteration,Logic,我正在为我正在学习的课程为我的初学者项目建立连接四。我无法让它继续前进,越过指数5。虽然在我第一次单击索引5后,它变为红色,但它似乎仍然返回true,即索引5未定义。我认为它会在每次单击之后运行for循环,再次从5开始,但它会返回False,然后返回到下一个索引4,检查该索引,以此类推。我已经查了很多,我只是卡住了。我想不出来 我知道,从长远来看,代码并不完整;我只是想理解这一步,不管代码有多难看,这样我就可以继续下一步了 var gClass = $(".G")

我正在为我正在学习的课程为我的初学者项目建立连接四。我无法让它继续前进,越过指数5。虽然在我第一次单击索引5后,它变为红色,但它似乎仍然返回true,即索引5未定义。我认为它会在每次单击之后运行for循环,再次从5开始,但它会返回False,然后返回到下一个索引4,检查该索引,以此类推。我已经查了很多,我只是卡住了。我想不出来

我知道,从长远来看,代码并不完整;我只是想理解这一步,不管代码有多难看,这样我就可以继续下一步了

    var gClass = $(".G")

function returnBackgroundColor(rowIndex,colIndex){
  // console.log($(colIndex[rowIndex]).prop("background-color"));
  // console.log(rowIndex);
  return($(colIndex[rowIndex]).prop("background-color"));
}

function changeColor(row, someClass){
  someClass.eq(row).css("background-color","red");
}

function checkColor(someClass){
  someClass.click(function() {
    for (var row = 5; row > -1; row--) {
      if (returnBackgroundColor(row, someClass) === undefined){
        console.log(row);
        return changeColor(row, someClass);
      }else {
        console.log("False");
      }
    }
  })
}

checkColor(gClass)

不要每次单击带有.G类名的元素时都循环遍历它们,而是尝试在click函数中使用jQuery$this关键字。像这样:

function addClickListener(someClass){
   $(someClass).each(function () {
      this.addEventListener('click', function() {
          // an example of how you use the $(this) 
          $(this).addClass('background-color-red');
      });
  });​
}

这样,您就可以摆脱for循环和索引问题。

我已经读过很多书,但似乎找不到我要找的答案。我知道for循环将遍历每个元素,这可能是我的问题。我认为使用行索引??将每个元素个人化,我想我已经正确地写出来了。我只是不知道如何只处理满足if要求的第一个元素,然后停止。我假设在执行.css更改之前,使用行返回并将其分配给变量是一种可行的方法,但我想在继续之前看看你们的想法。