在单独的ul中为每个列表项追加一个数组

时间:2016-05-19 15:18:16

标签: javascript jquery html css

我试图通过在列表项中附加1到4来将数组的内容添加到页面上的每个列表中。我遇到的问题是我不能对每个列表执行此操作,如果它们只有3个列表项,我不想添加另一个项目,只需在3处结束列表。我也想要删除0。

提前致谢!

var levels = [ "1", "2", "3", "4" ];
$('ul li').each(function (x) {
 $(this).append(levels[x]);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<ul>
 <li>0</li>
 <li>0</li>
 <li>0</li>
 <li>0</li>
</ul>

<ul>
 <li>0</li>
 <li>0</li>
 <li>0</li>
</ul>

<ul>
 <li>0</li>
 <li>0</li>
 <li>0</li>
 <li>0</li>
</ul>

FIDDLE

2 个答案:

答案 0 :(得分:1)

首先迭代列表,然后迭代每个列表的列表项

var levels = [ "1", "2", "3", "4" ];

$('ul').each(function(i, ul) {
    $(ul).find('li').each(function(j, li) {
        $(this).html(levels[j]);
    });
});

FIDDLE

答案 1 :(得分:0)

使用 :nth-child() jQuery.each()

var levels = ["1", "2", "3", "4"];
$.each(levels, function(i, x) {
  $('ul li:nth-child(' + (i + 1) + ')').html(x);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<ul>
  <li>0</li>
  <li>0</li>
  <li>0</li>
  <li>0</li>
</ul>

<ul>
  <li>0</li>
  <li>0</li>
  <li>0</li>
</ul>

<ul>
  <li>0</li>
  <li>0</li>
  <li>0</li>
  <li>0</li>
</ul>