在Jquery中单击按钮即可从动态生成的元素获取数据

在Jquery中单击按钮即可从动态生成的元素获取数据,jquery,jquery-selectors,jquery-events,Jquery,Jquery Selectors,Jquery Events,我试图通过点击按钮从动态创建的元素中检索数据 生成元素的脚本是: $('.dropdown-menu li a').click(function(){ var $this = $(this); var dropdownid = $(this).data('value'); var surname=$(this).data('surname'); var middlename=$(this).data('middlename');

我试图通过点击按钮从动态创建的
元素
中检索数据

生成元素的脚本是:

$('.dropdown-menu li a').click(function(){

        var $this = $(this);
        var dropdownid = $(this).data('value');
        var surname=$(this).data('surname');
        var middlename=$(this).data('middlename');
        var firstname=$(this).data('firstname');
        var attendees=$(this).data('attendees');

        $('.attendees').append('<div class='+dropdownid+'>'+firstname+' '+middlename+' '+surname+'</div>'+'<button class='+dropdownid+' id=btn-deleteattendee data-id='+dropdownid+' class=remove>X</button>');
    });
但是,控制台正在打印以下内容:

attendees: undefined
我也试过:

$('.attendees').on('click','#btn-createclass',function(event){
        console.log('createclass button clicked');
        event.preventDefault();
        var $this = $(this);
        $('.attendees').each(function(event){
            console.log('result ',$(this).data('id'));
        });
但这也不起作用。
非常感谢您提供的任何帮助

您需要在
Attenders
元素中迭代按钮元素,该元素具有
数据id
属性

您正试图从
Attenders
元素获取
数据id
值,该元素没有该值

$('.下拉菜单LIA')。单击(函数(){
var$this=$(this);
var dropdownid=$(this.data('value');
变量姓氏=$(this).data('姓氏');
var middlename=$(this.data('middlename');
var firstname=$(this.data('firstname');
var attendes=$(this.data('attendes');
$('.Attendes')。追加(''+firstname+''+middlename+''+姓氏+''+''X');
});
$(文档).on('click','btn createclass',函数(事件){
event.preventDefault();
var$this=$(this);
$('.Attendes[data id]')。每个(功能(事件){
console.log('result',$(this.data('id'));
});
});

  • 一,
  • 二,
  • 三,
  • 四,

创建
您确定正确使用了吗?您是否使用了此.id
?您是否看到“createclass按钮已单击”?这不是答案,但可能您还有另一个大问题。据我所知,您已生成多个
与会者。然后,您有许多id为
btn deleteAnteendee
的按钮。如果是的话,那肯定是错的。这是有效的!非常感谢您指出我的元素中没有任何数据。
$('.attendees').on('click','#btn-createclass',function(event){
        console.log('createclass button clicked');
        event.preventDefault();
        var $this = $(this);
        $('.attendees').each(function(event){
            console.log('result ',$(this).data('id'));
        });