我已经读过JavaScript closure inside loops – simple practical example和Why am I only getting the last item from javascript for loop?但仍然想不通,所以我后我的代码,以寻求帮助为什么我的“for”循环只得到HTML中的最后一项
function Produit(nom, prix){
this.nom = nom;
this.prix = prix;
}
// ______________ Objet ____________________
var apple = new Produit("apple", 0.30);
var banana = new Produit("banana", 0.03);
var pear = new Produit("pear", 0.35);
var kiwi = new Produit("kiwi", 0.40);
var produit = [apple,banana,pear,kiwi];
for (var i = 0; i < produit.length; i++) {
$('.test').html(produit[i].nom);
};
HTML
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
for
循环仅在html中获取最后一个项目名称"kiwi"
。
我测试循环与console.log
和alert
,他们都获得了4项名称:“苹果”,“香蕉”,“梨”,“猕猴桃”
为什么不这样出现在我的HTML?
您的循环每次都将相同的值写入所有匹配'.test'的元素。所有的迭代都覆盖了前一次迭代的文本。 –
divs都是相同的目标,因为他们有相同的类。 因此,循环会将每个值写入同一位置(在所有4个div中,您的情况为 )。 你必须给任何div一个ID,或者你必须调用他们在DOM中的位置 。 – John