使用jQuery迭代数组来创建链接

时间:2016-05-10 21:37:06

标签: javascript jquery

我试图循环一个非常简单的数组来创建一个菜单。我已经解决了所有问题,但尚未确定下来。

这是我的剧本:

var json_data = [["Womens","/womens"],["Best Sellers","/best-sellers"]];
var json_length = json_data.length;
var inner_length = 0;

for (var i = 0; i<json_length; i++)
{
    inner_length = json_data[i].length;
    for( var j = 0; j<inner_length; j++ ){

        var innerData = json_data[i][j];

        var data = '<a href="' + json_data[j][1] + '">' + json_data[j][0] + '</a><br/>';

        //alert(data);

        $("#content").append(data);

    }
}

基本HTML:

<div id="content">
</div>

当我移动代码以在第一个for循环(而不是第二个)中附加到我的div时,第二个对象的数据显示两次而不是第一个然后第二个。当前代码显示第一个和第二个对象的数据,但由于位于第二个for循环内部而重复它。我确信有一个简单的解决方案,但我不知所措。

2 个答案:

答案 0 :(得分:3)

您可以使用 forEach() 更轻松地遍历数组:

json_data.forEach(function(item) {
  var data = '<a href="' + item[1] + '">' + item[0] + '</a><br/>';
  $("#content").append(data);
});

Fiddle

答案 1 :(得分:1)

更新了你的小提琴,删除了不必要的循环:

https://jsfiddle.net/79k32o1j/4/

for (var i = 0; i<json_length; i++) {
    var data = '<a href="' + json_data[i][1] + '">' + json_data[i][0] + '</a><br/>';
    $("#content").append(data);
}