如何获得一个jQuery数据变量按钮不div div

问题描述:

我有一个使用jQuery的rails网站。我将我的“关注”按钮从用户页面移到搜索显示页面。如何获得一个jQuery数据变量按钮不div div

这意味着我必须从JavaScript更改javascript,假设每个页面上只有一个跟随按钮,以便与页面上的多个按钮一起使用。每个按钮都是针对搜索结果中的其他用户。

我的旧代码工作是这样的:

HTML:

= content_tag 'div', id: 'friends-data', data: {user_id: current_user.id, friend_id: user.id, is_following: true } do 
= button_tag "Follow", class: 'btn btn-Follow followUser' 

HTML(编):

<div id="friends-data" data-user-id="2" data-friend-id="8" data-is-following="true"></div> 
<button name="button" type="submit" class="btn btn-follow followUser">Follow</button> 

JS:

this.data = $('#friends-data').data(); 

我希望能有按钮有它自己的数据。这样我的this.data将已经是数据,我不必从它上面的div抓住它。这样JS永远不会总是从第一个用户那里获取数据,但它会抓取关于与该按钮有关的用户的数据。

我的问题是this.data = $(this).data();不起作用。

例如给出:

<div id="friends-data" data-user-id="2" data-friend-id="8" data-is-following="true"></div> 
<button name="button" type="submit" class="btn btn-follow followUser" data-user-id="2" data-friend-id="8" data-is-following="true">Follow</button> 

$(document).ready(function(){ 
    $(".followUser").click(function(){ 
    window.alert($('#friends-data').data()); 
    window.alert(this.data()); 
    }); 
}); 

将打印出第一个警报,但没有第二个。

+1

'this'比'$(本)'不同。 –

改变这一点:

window.alert(this.data()); 

与此:

window.alert($(this).data());