2014-01-08 31 views
14

我想盡可能使我的JavaScript編碼風格符合我的Zend編碼風格,這是使用camelCase。所以,在我的HTML5數據屬性,我給它們命名如下例:jQuery是否內部將HTML5數據屬性鍵轉換爲小寫?

<button class="action" data-actionClass="user" data-actionMethod="delete" data-actionRequest="/user/delete/user-id/1" data-actionComplete="{reload:users}">Delete User #1</button> 
<div id="users" data-reloadRequest="/user/index"> ... </div> 

漂亮不顯眼的方式來利用jQuery的的操作,但是當我調用$(「行動。」)數據()的。屬性名稱轉換爲小寫。

對此的任何解決方法?

我從來沒有通過JavaScript變量應該有破折號,我不明白爲什麼jQuery內部爲我做這個?或者,也許它是HTML5?

+3

不要駝峯你的HTML標記。在標記中使用破折號(例如'data-action-method'而不是'data-actionMethod'),並且它會被正確轉換 – megawac

回答

31

如果使用

data-action-method="delete" 

那麼你就可以

$('.action').data('actionMethod') 

這是HTML5 DOM API的部分訪問屬性:

自定義數據屬性轉換爲關鍵對於具有以下規則的 DOMStringMap條目:

  • 任何破折號(U + 002D)被刪除;
  • 破折號後面的任何字母(U + 002D),在刪除之前,都被設置爲大寫字母。
+0

因此,它確實http://jsfiddle.net/R6RSL/ – Popnoodles

+0

太棒了!謝謝,那麼簡單。當然,讓我覺得自己像一個新手,不知道如此微不足道的東西。 – axiom82

+0

@Michael:不用擔心,我真的不希望有人知道這一點。當我試圖以'.data('foo-bar')'來訪問屬性時,它肯定讓我感到困惑!) –