提问者:小点点

Jquery eq(i)不起作用--我怎么用“for”?


当我在我的EQ后面加上一个数字时,下面的代码工作得很好。

 for (i=0; i<$("button.mark").length ; i++){

   $("button.mark:eq(0)").on("click", e => {
     e.preventDefault()
     e.stopPropagation()
     $("div.popup:eq(0)").show()
  
      if ($("div.popup:eq(0)").css("display") === "block") {
        $(window).on("click", () => {
          $("div.popup:eq(0)").hide()
        })
      }
   })
 }

但当我试着把它放入for时,它就停止工作了。你知道为什么吗?

for (i=0; i<$("button.mark").length ; i++){

   $("button.mark:eq(i)").on("click", e => {
     e.preventDefault()
     e.stopPropagation()
     $("div.popup:eq(i)").show()
  
      if ($("div.popup:eq(i)").css("display") === "block") {
        $(window).on("click", () => {
          $("div.popup:eq(i)").hide()
        })
      }
   })
 }

共1个答案

匿名用户

感谢斯瓦蒂和查理,这就是你的答案

for (let i=0; i<$("button.mark").length ; i++){

  $("button.mark:eq("+i+")").on("click", e => {
    e.preventDefault()
    e.stopPropagation()
    $("div.popup:eq("+i+")").show()
 
      if ($("div.popup:eq("+i+")").css("display") === "block") {
        $(window).on("click", () => {
          $("div.popup:eq("+i+")").hide()
        })
      }
  })
}

我在for循环条件中添加了(“+I+”)和“let”!