通过数组的for循环单击事件只给我最后一项?

时间:2012-02-01 19:36:02

标签: jquery arrays for-loop

我有一个数组:

var bar = [];

我有一个for循环遍历数组:

            for (var i = 0; i <= 3; i++) {
                $(".left-lg").find(".name").html(bar[i].name);
            }

我正在尝试用数组中的内容替换DIV.name的内容,它可以工作,但只给出了数组中的最后一个。我读过,在带有javascript的点击事件中,循环将结束,所以这就是原因。

任何方式如何纠正这一点,以便它将通过整个循环而不只是给最后一个?

3 个答案:

答案 0 :(得分:1)

这是因为您始终将所有的HTML内容设置为与.name匹配的元素。请尝试使用each()提供的index参数:

$(".left-lg .name").each(function(index) {
    $(this).html(bar[index].name);
});

答案 1 :(得分:0)

尝试使用append而不是html $(".left-lg").find(".name").append(bar[i].name);

答案 2 :(得分:0)

多数民众赞成,因为每次你打电话:

$(".left-lg").find(".name").html(bar[i].name);

你正在覆盖以前的循环。

将变量设置为等于数组中所需的值,然后将该数组传递给元素:

var allNames;

for (var i = 0; i <= 3; i++) {
    allNames = allNames + bar[i].name);
}

$(".left-lg").find(".name").html(allNames);