let for循环中i的取值

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

let input_texts = document.querySelectorAll('input[type="text"]');
  let error_msgs = document.querySelectorAll('.error_msg');
  for(let i=0; i<input_texts.length; i++) {
    input_texts[i].onfocus = function() {
      console.log(i);
    };
  }

你期待的结果是什么?实际看到的错误信息又是什么?

期望输入0, 1, 2, 3....
但实际输出结果1, 2, 3,...

阅读 1.8k
1 个回答

是你写错了吧

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <div id="app">
    <ul class="ul">
      <li class="li">
        <input type="text">
      </li>
      <li class="li">
        <input type="text">
      </li>
      <li class="li">
        <input type="text">
      </li>
      <li class="li">
        <input type="text">
      </li>
      <li class="li">
        <input type="text">
      </li>
      <li class="li">
        <input type="text">
      </li>
    </ul>
  </div>
  <script src="./demo.js"></script>
</body>
</html>

demo.js

let li = document.querySelectorAll('.li > input')
for (let i = 0; i < li.length; i++) {
    li[i].onfocus = function() {
        console.log(i)
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题