在数组中动态存储li id

dynamically store li id in the array

本文关键字:li id 存储 动态 数组      更新时间:2023-09-26

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

这是js代码

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

但是它不工作。

<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).attr('id')相同的this.id

你可以试试这个

$(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);
});