我的页面上有几个链接,并希望在用户点击它时运行JQuery脚本。以前我在链接中添加了一个唯一的ID,例如
<a id="user_1" class="mylink">
在我的点击事件中,我随后提取了ID并开始处理
userid = $(this).attr('id').split('_')[1];
现在我遇到的问题是我的页面可能有几个具有相同ID的链接,当然这是不可能的(afaik)。所以我想我必须把它添加为课程,对吧?例如
<a class="mylink user_1">
这是最好的方法吗?然后,我怎么能从类中提取userID('1')? jQuery-Script当然也应该注意有一些没有类'user _ ,,,'的链接。 非常感谢提前!
答案 0 :(得分:5)
最好的方法是使用自定义data-*
属性。这些符合HTML5标准,并且在早于该标准的浏览器中普遍使用。
所以您的链接可能如下所示:
<a data-user="1" class="mylink">
您的点击处理程序可能如下所示:
$('a').click(function(){
var userId = $(this).data('user');
});
这可行,因为data
会导入data-*
属性。
如果未设置data-user
属性,则userId
将为undefined
。
答案 1 :(得分:1)
this.className
或者如果你想使用jQuery对象(没有充分的理由这样做):$(this).attr('className')
您可以使用正则表达式(/userid_([0-9]+)/
)...
但是,使用HTML5 data-
属性会更好。由于浏览器对未知属性非常宽容,因此它们不会破坏任何内容,并且可以与HTML4和XHTML一起使用:
<a class="mylink" data-userid="1">---</a>
...
var userid = $(this).data('userid');
好消息是:如果在数据属性中放置有效的JSON,.data('yourAttr')
将自动返回一个对象而不是一个字符串。
答案 2 :(得分:0)