javascript - For 循环没有按预期工作(使用 jQuery)

标签 javascript jquery loops for-loop

我了解使用 JavaScript 的 for 循环的基本前提,但是 .each 的使用让我难以理解。

var col = [1, 2, 3, 4, 5, 6];

for (var i = 0; i < col.length; i++) {
    $('p').html(col[i]);
}

产生的结果:

<p> 6 </p>
<p> 6 </p>
<p> 6 </p>

当我期待的时候:

<p> 1 </p>
<p> 2 </p>
<p> 3 </p>

为什么这没有按预期工作,如何使用 jQuery 而不是纯 JavaScript 来完成?

http://jsfiddle.net/rgD92/2/

最佳答案

See the code below :

var col = [1, 2, 3, 4, 5, 6];
$('p').each(function(index){
    $(this).text(col[index]);
});

为什么您的代码不起作用?

当您在循环中迭代“col”列表时,您获取了所有引用 <p>元素,当最后一次交互发生时,数字 6 将设置在所有 <p> 中元素。

更新:

如果你有更多<p> col 中的元素比数字列表,你可以使用 %运算符(operator)喜欢下面的代码:

var col = [1, 2, 3, 4, 5, 6];

$('p').each(function(index){
    $(this).text(col[index % col.length]);
});

Demo

希望对您有所帮助。

关于javascript - For 循环没有按预期工作(使用 jQuery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20125217/

相关文章:

android - 如何在 Android 上每 5 秒循环或执行一个函数

javascript - 对 "session"使用 setTimeout() 是一个好习惯吗

javascript - jQuery $.focus() 不适用于 id 和输入类型

javascript - 没有每个和回调函数的 jQuery 循环

javascript - 如何在循环之后/之前管理异步功能

javascript - css背景在div高度重置时重复

Javascript 的 json 数据结构

javascript - 如何在 Jasmine 测试中加载和编译 AngularJs HTML 片段/部分?

jquery - 水平网页显示的最佳方法?

javascript - 干代码 : Use JQuery to make loop for a similar properties in function attached to different classes