我发现自己这样做了. $jq("button").filter(function(){ return this.id.match(/^user_(\d+)_edit$/);}).click(function(){ var matches = this.id.match(/^user_(\d+)_edit$/); var user_id = matches[1]; alert('click on user edit button with I
$jq("button").filter(function(){ return this.id.match(/^user_(\d+)_edit$/); }).click(function(){ var matches = this.id.match(/^user_(\d+)_edit$/); var user_id = matches[1]; alert('click on user edit button with ID ' + user_id); });
所以我想将click事件应用于某些按钮,并且在click事件处理程序中我需要用户ID.有没有办法可以避免第二场比赛?
$jq("button").filter(function(){ return this.id.match(/^user_(\d+)_edit$/); }).click(function(){ var user_id = some_magic_variable; alert('click on user edit button with ID ' + user_id); });
谢谢.
避开第一场比赛怎么样?$jq("button[id^=user][id$=edit]").click(function() { });
将选择具有starts with用户和ends with编辑ID的所有按钮.
虽然老实说,看看你的用例,简单地给所有用于编辑用户类的“edit_user”按钮然后只做:
$jq('button.edit_user').click(function() { });
它更清晰,更快速,并且jQuery方式可以获得所有符合类似用途的元素.
至于获取用户ID,在这个网站上有一些关于自定义属性的热烈讨论(Custom attributes – Yay or nay?),我个人在我的元素中执行data-userid =’5′,然后只做var id = $(this).attr(‘数据用户ID’);获取ID.好,易于.但是,不会验证为XHTML.