动态存储数组中的li id

时间:2014-03-29 09:23:48

标签: javascript jquery html

在我的代码中,lis是动态生成的,每个li都有特殊的id。 我想存储每个li" id"在一个数组

这是js代码

var i=0;
$("ul#portfolio li").each(function(eval){
    var idd = new Array();
        idd[i]=$(this).attr("id");
    i++;
});

但它没有用。

html

<div id="container">
    <ul id="portfolio" class="clearfix">
    <!-- Dynamically generated li -->
    </ul>
</div>

2 个答案:

答案 0 :(得分:2)

您需要使用.map()

var idd = $("#portfolio li").map(function(eval){
    return this.id;
}).get();

在您的情况下,您的数组是回调的本地数组,因此每次回调的每次迭代都会创建一个新数组而不是将该项添加到现有数组

var idd = new Array();
$("#portfolio li").each(function (eval) {
    idd.push(this.id)
});
  • 确保在将目标元素加载到dom后运行脚本(可以使用dom ready处理程序)
  • 使用与this.id
  • 相同的$(this).attr('id')

答案 1 :(得分:2)

你也可以尝试这个

$(document).ready(function()
    for(var i=0;i<5;i++){
        $('#portfolio').append("<li id='"+ i +"'>"+ i  +"</li>");
    }

    var idArray=new Array();
        $('#portfolio li').each(function(ind,val){
        idArray.push(this.id)

        });

    console.log(idArray);
});