在我的代码中,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>

最佳答案

您需要使用.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')

09-25 17:25
查看更多