如何从标签<a>'s操作数据
how to get information from tag <a>'s action-data?
我想把一些信息放在a href的"动作数据"中,比如:
<a href=# action-data="userid={{g.user._id}}&messageid={{message._id}}" id=reply >reply</a>
但是如何获得userid&messageid返回到Javascript代码?
<script type=text/javascript>
$(function () {
$('a#reply').bind('click', function () {
$.getJSON($SCRIPT_ROOT + '/_get_replies', {
messageid: ??????How to get messageid from href action-data?
userid: ??????How to get userid from href action-data?
}, function (data) {
$('#replies').text(data.result)
});
return false;
});
});
以不同方式存储:
<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
中没有这样做
如果控制标记,则应在属性前加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
...
相关文章:
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- 如何确定javascript已经完成了某些操作.ios上的
- 防止Alt+Shift默认操作或检测多种操作系统语言的Javascript
- 从JavaScript访问struts操作中的属性
- fluxxor向一个flux实例添加一组以上的操作
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 操作放置在画布上的元素之间的连接
- 使用“+="操作人员
- Rails操作只调用一次,但我在ajax中每秒钟都调用一次
- Jquery未定义函数正在停止其他操作
- 如何操作iframe之外的元素
- javascript对象操作:根据指定条件选择属性
- jQuery:暂停按钮可以暂停所有其他操作
- 用于选择/文本框操作的JavaScript
- Google 脚本:用于创建日历活动的脚本运行时不会出错,但不会执行任何操作
- 通过javascript操作图像,非常简单
- 将文本框中的值用于按钮窗体操作上的变量
- 当通过AJAX调用时,控制器操作不会执行
- 多于两个操作数的OR操作