每个循环只显示第一个值

时间:2014-07-06 17:00:24

标签: jquery arrays for-loop append

我正在尝试创建动态导航栏。但目前它唯一列出的第一个李甚至我输入超过1

    var liCount = $('.navLiName').length;
    var liName = $('.navLiName').val();

    for($i = 0; $i < liCount; $i++){
        var lis = '<li class="pi-nav-li">'+liName+'</li>';
    }

    $('.preview').append('<nav class="pi-nav">'+lis+'</nav>');

这是html

<input type="text" class="navLiName" /> 
<input type="text" class="navLiName" />
<input type="text" class="navLiName" />

所以当我把我放入上面的文本字段时:'关于','服务'和'联系'它会输出它

<nav>
<li>About</li>
</nav>

但它应该是。我做错了什么

<nav>
<li>About</li>
<li>Service</li> 
<li>Contact</li>
</nav>

2 个答案:

答案 0 :(得分:1)

每次循环运行时都会覆盖$ lis,而不是追加。 $ liName只保存第一个列表名称的结果,它永远不会得到其他名称。

答案 1 :(得分:0)

var liCount = $('.navLiName').length;
for( var i = 0; i < liCount; i++){
    var loopLi= $('.navLiName')[i];
    alert ($(loopLi).val());
}