如何循环表td并更新

时间:2016-05-21 02:20:18

标签: javascript jquery

我正在尝试遍历表格并根据数组更新每个td:

var person = []; //each array stores a person's name, height, and weight

for (i = 0; i < 5; i++) {

  $("table th").each(function(){
    $(this).text(person[i].name);
  });

  $("table td").each(function() {
    $(this).text(person[i].height + '/' + person[i].weight);
  });

}

然而,这最终会在td中存储数组的最后一个值...我需要根据他们的索引循环显示td&#39; ...有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

问题在于您正在迭代th/td,因此,每次迭代第一个for循环,然后使用jQuery迭代所有th/td并更新包含外部index值的当前for的内容。不知道你是否理解这一切,但我会举一个如何解决的例子。

var person = []; //each array stores a person's name, height, and weight

for (i = 0; i < 5; i++) {
  $("table th:eq("+i+")").text(person[i].name);
  $("table td:eq("+i+")").text(person[i].height + '/' + person[i].weight);
}

我不知道你期望的最终结果是什么,但是我编写的代码与你当前正在迭代的索引完全相同。th/td

或者,如果您确定数组中存在相同数量的td/th,那么这对您来说可能没问题

$("table th").each(function(index){
  $(this).text(person[index].name);
});

但它可能会在几个方面失败,具体取决于person数组

的内容

希望有所帮助