【问题标题】:each loop only showing first value每个循环只显示第一个值
【发布时间】:2014-08-27 04:53:43
【问题描述】:

我正在尝试创建一个动态导航栏。但是目前它只列出了第一个 li,即使我输入了超过 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" />

所以当我输入上面的文本字段时:'About'、'Service' 和 'Contact' 它会像这样输出它

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

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

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

【问题讨论】:

标签: jquery arrays for-loop append


【解决方案1】:

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

【讨论】:

  • 查看link 最底部的示例,因为它与您的需求相关。
【解决方案2】:
var liCount = $('.navLiName').length;
for( var i = 0; i < liCount; i++){
    var loopLi= $('.navLiName')[i];
    alert ($(loopLi).val());
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 2012-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-26
    相关资源
    最近更新 更多