2013-03-13 29 views
1

我这样设置从数据中获取数据的属性

<input type="button" class="btn" data-user={"user": "<%= @user.name %>"} value="Start" id="game"> 

链接在侦听click事件的JavaScript功能上为用户的数据属性,我做了console.log(e.target),它打印整个事情控制台。

<input type="button" class="btn" data-user={"user": "<%= @user.name %>"} value="Start" id="game"> 

如果我做console.log(e)即没有e.target,它记录了jQuery事件,但该数据属性未定义

data: undefined 

我想拉的用户名从数据属性,但不知道如何从这里得到它

<input type="button" class="btn" data-user={"user": "<%= @user.name %>"} value="Start" id="game"> 

我不知道为什么数据是不确定的,当我只记录事件。

如果你能帮助我,我将不胜感激。提前致谢。

+1

请向我们展示浏览器看到的**实际**生成的标记。如果上面的“标记”是浏览器看到的,那不是有效的标记。 – 2013-03-13 21:59:37

+2

我不认为这是有效的标记。 – 2013-03-13 21:59:51

+0

属性值需要用引号括起来:'data-user =“{'user':'<%= @ user.name%>'}”'或'data-user =“<%= @ user.name% >“' – Steve 2013-03-13 22:00:00

回答

4

您的HTML是...独一无二的?取而代之的是:

data-user={"user": "<%= @user.name %>"} 

试试这个:

data-user="<%= @user.name %>" 

然后你就可以得到标准的jQuery .data()技术数据(因为你提到的jQuery):

var user = $('#game').data('user'); 
+0

谢谢,我实际上有正确的HTML,但后来改变它,一旦我做了一些谷歌搜索,并在另一个博客上发现一些不好的建议。不过,我没有意识到,您将id(#game)转换为jquery选择器来访问数据属性。谢谢 – BrainLikeADullPencil 2013-03-13 23:17:43

0

您可以访问来自DOM对象的数据如下:

var data = $(e.target).attr("data-user");