我想提出一個HREF的「動作數據」的一些信息,如:如何從標籤<a>的行爲數據中獲取信息?
<a href=# action-data="userid={{g.user._id}}&messageid={{message._id}}" id=reply >reply</a>
,但如何獲得用戶ID &信息id回Javascript代碼?
我想提出一個HREF的「動作數據」的一些信息,如:如何從標籤<a>的行爲數據中獲取信息?
<a href=# action-data="userid={{g.user._id}}&messageid={{message._id}}" id=reply >reply</a>
,但如何獲得用戶ID &信息id回Javascript代碼?
店不同的看法:
<a href="#"data-userid="{{g.user._id}}" data-messageid="{{message._id}}" id="reply">reply</a>
jQuery的可以得到這樣的:
var messageId = $('#reply').data('messageid');
而且,點擊事件可以是更短:
$('a#reply').click(function(){
});
PS:記得用引號,因爲你在href
和id
:非常感謝。順便說一句,我不使用引號,因爲燒瓶不兼容,它似乎是一個HTML5功能,不是嗎? – 2012-02-21 12:25:14
@BrentJiang:這是正確的,引號不是嚴格要求。如果你有一定的人物價值觀,那麼這仍然是一個好習慣。或者正如Mark Pilgrim所說:[除非你是搖滾明星,否則總是引用你的屬性值。](http://diveintohtml5.info/peeks-pokes-and-pointers.html)。 – 2012-02-21 12:40:30
沒有如果你控制了標記,你應該data-
前綴屬性,而不是與-data
後綴他們。此外,它似乎更容易爲每個屬性的一個屬性,而不是解析,那麼爲什麼不:
<a href=# data-userid="{{g.user._id}}" data-messageid="{{ message._id }}" id=reply>
然後你可以使用jQuery data
:
var userid = $("a#reply").data("userid"),
messageid = $("a#reply").data("messageid");
我還建議對其他回答者的建議使用不同的標記。但是,如果您無法更改標記,則可以解析像這樣的參數:
...
$('a#reply').click(function() {
// parse the 'action-data' attribute of the link
var actionData = $(this).attr('action-data');
var params = {};
$.each(actionData.split("&"), function(index, data) {
var keyValue = data.split("=");
params[keyValue[0]] = keyValue[1];
});
// now you can use params.userid and params.messageid
...
謝謝,你的回答非常有用,但我沒有足夠的聲望,:( – 2012-02-21 12:32:39
您是否控制標記?即你能以任何你想要的方式格式化它嗎? – 2012-02-21 12:13:44
是的,我正在修改Flask的minitwit示例代碼,我控制它。 – 2012-02-21 12:42:35