数据属性返回undefined

ott*_*tz0 7 javascript jquery

我正在使用jQuery filtername在onClick上设置数据属性,工作正常.

$('#tag-group ul').append('<li><i class="fa fa-times" aria-hidden="true" data-filtergroup="'+filterGroup+'" data-filtername="'+filterName+'"></i>'+text+'</li>');
Run Code Online (Sandbox Code Playgroud)

它在屏幕上显示为ok

<li><i class="fa fa-times" aria-hidden="true" data-filtergroup="location" data-filtername="Melbourne"></i> Melbourne</li>
Run Code Online (Sandbox Code Playgroud)

然后我试图在另一个onClick上再次拿起它,但它回来时未定义.当console log $(this).text();它工作但我控制日志时$(this).data('filtername');它是未定义的.如果它是由jQuery生成的,dom是否隐藏它?

$(document).on('click','#sau-filter-tags ul li', function(event){
            var text = $(this).text();
            var filterName = $(this).data('filtername');
            console.log(filterName);  //Undefined
        });
Run Code Online (Sandbox Code Playgroud)

A.J*_*A.J 7

filternameili 中标签的属性.

你需要选择i标签:

$(document).on('click', '#sau-filter-tags ul li i', function(event) {
  var text = $(this).text();
  var filterName = $(this).data('filtername');
  console.log(filterName); //Undefined
});
Run Code Online (Sandbox Code Playgroud)

或者你需要将事件附加到li并找到我this,例如:

$(this).find('i').data('filtername')