我在用

$('#list option').each(function(){
//do stuff
});

to loop over the options in a list. I am wondering how I could get the index of the current loop?

因为我不想让变量i=0; 循环内有i++;

推荐答案

$('#list option').each(function(index){
  //do stuff
  console.log(index);
});

logs the index :)

下面是一个更详细的示例.

function run_each() {

  var $results = $(".results");

  $results.empty();

  $results.append("==================== START 1st each ====================");
  console.log("==================== START 1st each ====================");

  $('#my_select option').each(function(index, value) {
    $results.append("<br>");
    // log the index
    $results.append("index: " + index);
    $results.append("<br>");
    console.log("index: " + index);
    // logs the element
    // $results.append(value);  this would actually remove the element
    $results.append("<br>");
    console.log(value);
    // logs element property
    $results.append(value.innerHTML);
    $results.append("<br>");
    console.log(value.innerHTML);
    // logs element property
    $results.append(this.text);
    $results.append("<br>");
    console.log(this.text);
    // jquery
    $results.append($(this).text());
    $results.append("<br>");
    console.log($(this).text());

    // BEGIN just to see what would happen if nesting an .each within an .each
    $('p').each(function(index) {
      $results.append("==================== nested each");
      $results.append("<br>");
      $results.append("nested each index: " + index);
      $results.append("<br>");
      console.log(index);
    });
    // END just to see what would happen if nesting an .each within an .each

  });

  $results.append("<br>");
  $results.append("==================== START 2nd each ====================");
  console.log("");
  console.log("==================== START 2nd each ====================");


  $('ul li').each(function(index, value) {
    $results.append("<br>");
    // log the index
    $results.append("index: " + index);
    $results.append("<br>");
    console.log(index);
    // logs the element
    // $results.append(value); this would actually remove the element
    $results.append("<br>");
    console.log(value);
    // logs element property
    $results.append(value.innerHTML);
    $results.append("<br>");
    console.log(value.innerHTML);
    // logs element property
    $results.append(this.innerHTML);
    $results.append("<br>");
    console.log(this.innerHTML);
    // jquery
    $results.append($(this).text());
    $results.append("<br>");
    console.log($(this).text());
  });

}



$(document).on("click", ".clicker", function() {

  run_each();

});
.results {
  background: #000;
  height: 150px;
  overflow: auto;
  color: lime;
  font-family: arial;
  padding: 20px;
}

.container {
  display: flex;
}

.one,
.two,
.three {
  width: 33.3%;
}

.one {
  background: yellow;
  text-align: center;
}

.two {
  background: pink;
}

.three {
  background: darkgray;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="container">

  <div class="one">
    <select id="my_select">
      <option>apple</option>
      <option>orange</option>
      <option>pear</option>
    </select>
  </div>

  <div class="two">
    <ul id="my_list">
      <li>canada</li>
      <li>america</li>
      <li>france</li>
    </ul>
  </div>

  <div class="three">
    <p>do</p>
    <p>re</p>
    <p>me</p>
  </div>

</div>

<button class="clicker">run_each()</button>


<div class="results">


</div>

Jquery相关问答推荐

逐个交换图像

使用 howler.js 中的变量播放多种声音

如何向父元素添加类?

使用 JQuery 在 span 标签中用逗号分隔页面上的文本

如何确定 jQuery 中匹配元素的元素类型?

JSLint 错误:将调用移动到包含函数的括号中

jQuery / Ajax - $.ajax() 将参数传递给回调 - 使用好的模式?

如何使用 jQuery 以编程方式触发对链接的点击?

从 iframe 访问父窗口的元素

jQuery 序列化不注册复选框

将数据传递给 jQuery UI 对话框

如何在 jquery 中更新(附加到)href?

jQuery Button.click() 事件被触发两次

使用 Jquery 更改页面标题

停止输入/书写后如何触发输入文本中的事件?

jQuery、复选框和 .is(":checked")

如何测试 URL 字符串是绝对的还是相对的?

javascript jquery单选按钮单击

更改 div 的内容 - jQuery

粘性侧边栏:向下滚动时固定在底部,向上滚动时固定在顶部