Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery-从生成的元素动态获取id_Javascript_Jquery - Fatal编程技术网

Javascript jQuery-从生成的元素动态获取id

Javascript jQuery-从生成的元素动态获取id,javascript,jquery,Javascript,Jquery,我试图做的是在单击时获取列表中新添加项的id名称。这是我的密码 $(文档).ready(函数(){ $('ul>li')。在('click',function()上{ var idName=$(this.attr('id'); 警报(idName); }); $('#添加')。单击(函数(){ var n=数学地板((数学随机()*100)+1); $('ul').prepend('li id=“name-'+n+'”>新项目); }); }); 旧项目 旧项目 旧项目 添加项目您需要使

我试图做的是在单击时获取列表中新添加项的id名称。这是我的密码

$(文档).ready(函数(){
$('ul>li')。在('click',function()上{
var idName=$(this.attr('id');
警报(idName);
});
$('#添加')。单击(函数(){
var n=数学地板((数学随机()*100)+1);
$('ul').prepend('li id=“name-'+n+'”>新项目);
});
});

  • 旧项目
  • 旧项目
  • 旧项目
添加项目
您需要使用
$(文档)。在('click','ul>li',function(){})上
而不是
$('ul>li')。在('click',function(){})上$('ul>li')。on('click',function(){})不会在新添加的元素上检测到
单击
事件。为了克服这个问题,您需要在
document
级别将click事件分配给
ul>li
,这样每当添加新元素时,它都位于
document
的上下文中,并侦听
ul>li
上的
click
事件

$(文档).ready(函数(){
$(文档)。在('click','ul>li',function(){
var idName=$(this.attr('id');
警报(idName);
});
$('#添加')。单击(函数(){
var n=数学地板((数学随机()*100)+1);
$('ul').prepend('li id=“name-'+n+'”>新项目);
});
});

    新项目
  • 旧项目
  • 旧项目
  • 旧项目

添加项
要获取新创建项的id,请使用ele:first CSS属性。 在单击时调用它

let new_el_id = $("ul").find("li:first").attr("id");

每次添加新项目时更新您的侦听器,请重试

$(文档).ready(函数(){
addListener();
函数addListener(){
$('ul li')。在('click',function()上{
var idName=$(this.attr('id');
警报(idName);
});
}
$('#添加')。单击(函数(){
var n=数学地板((数学随机()*100)+1);
$('ul').prepend('li id=“name-'+n+'”>新项目);
addListener();
});
});

    // 新项目
  • 旧项目
  • 旧项目
  • 旧项目
添加项目
试试这个

$('ul').on('click','li', function() {  
    var idName = $(this).attr('id');
    alert(idName);
});

将其绑定到
文档
可能不是最有效的选择。为什么不把它放在
ul
上呢?@BoyWithSilverWings它也不会以这种方式工作,因为元素是在DOM呈现后动态添加的。这完全不是实现这一点的合适方式。这会增加额外的开销。没错,谢谢!:)@安基塔加瓦尔