2015-10-16 65 views
0

我有一個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]); 
      }); 
     } 
    } 
+0

沒有您的內部循環的地步。它從'0'到'<1'...這樣一次。如果它只執行一次,它不是一個循環! – Jamiec

回答

0

有似乎沒有多大點在列表上做多遍,只有一個會做(如果我正確理解你的描述)

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

這裏有一個演示:

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

 
$(".menu-sidebar li a").each(function(index) { 
 
     $(this).text(newListName[index]) 
 
});
<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>

+0

-.- Omg ..非常簡單......那時候應該休息一下,而不是失望,在代碼中失去理智!哈哈謝謝@賈米茨! –

+0

在OP說實話說她幫了她一個小時後,這是怎麼得到一個downvote的,並且被接受了。有時候這很奇怪! – Jamiec