带有列表和数组的嵌套循环

时间:2015-10-16 13:46:05

标签: javascript arrays loops

我有一个html ul li,我需要从中获取内容并使用位于数组中的其他内容进行更新。到目前为止,我创建了嵌套循环,但我总是卡在同一点:每个li被迭代4次(我的数组长4)努力显示我的数组的最后一个元素 我的代码比我更清楚:

HTML

<div class="menu-sidebar">
<ul>
<li><a>Batman</a></li>
<li><a>Billo</a></li>
<li><a>Breaking-</a></li>
<li><a>Buttons</a></li>
</ul>
</div>

的js

   var currentNames = [];
    var newListName = [
    "Hello",
    "Billo M",
    "Breaking Hard",
    "Button"
    ];

    $(".menu-sidebar li a").each(function(index) {
        var listName = $(this).text().replace(/\s/g,'');
        currentNames.push(listName);
    //console.log(currentNames); //["Batman", "Billo", "Breaking-", "Buttons", .. ]
    //console.log(newListName); //["hello", "Billo M", "Breaking Hard", "Button"]
    });

    for (var j = 0; j < currentNames.length; j++) {
            var currentName = currentNames[j]

        for (var i = 0; i < 1; i++) {
            console.log(currentNames[j]); 
            console.log(newListName[j]);

            $(".menu-sidebar li a").each(function(index) {
                $(this).text(newListName[j]);
            });
        }
    }

1 个答案:

答案 0 :(得分:0)

在列表上进行多次传递似乎没什么意义,只有一个会做(如果我理解你的描述正确的话)

$(".menu-sidebar li a").each(function(index) {
        $(this).text(newListName[index])
});

这是一个演示:

&#13;
&#13;
var newListName = [
    "Hello",
    "Billo M",
    "Breaking Hard",
    "Button"
    ];

$(".menu-sidebar li a").each(function(index) {
        $(this).text(newListName[index])
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="menu-sidebar">
<ul>
<li><a>Batman</a></li>
<li><a>Billo</a></li>
<li><a>Breaking-</a></li>
<li><a>Buttons</a></li>
</ul>
</div>
&#13;
&#13;
&#13;