.data()没有返回undefined

Ant*_*ony 2 html jquery

我试图使用.data从属性中获取值.

HTML

<div class="like" data-postid="903282304865jh"> </div>
Run Code Online (Sandbox Code Playgroud)

JS

$(".like").click(function(event){ 
      var postID = $(event.target).data('postid');
      console.log(postID);
});
Run Code Online (Sandbox Code Playgroud)

我在控制台中返回未定义的内容.这里发生了什么?

Ion*_*zău 7

使用$(this)而不是$(event.target):

  var postID = $(this).data('postid');
Run Code Online (Sandbox Code Playgroud)

如果div中没有​​其他元素,则代码可以正常工作.

还要考虑比较target.eventthis:

event.target

启动事件的DOM元素.阅读更多


this

在jQuery中,被执行的元素通常会传递给jQuery函数的函数参数.它可以通过使用成为jQuery元素对象$(this).阅读更多

您的代码变为:

$(".like").click(function(event){     
      var postID = $(this).data('postid');
      alert(postID);
});
Run Code Online (Sandbox Code Playgroud)

HTML示例可以如下:

<div class="like" data-postid="903282304865jh"><i>A</i> Test</div>
Run Code Online (Sandbox Code Playgroud)

的jsfiddle