2013-03-13 33 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");