我正在从模板引擎(Template7)生成列表,并将userID添加到每个列表项中的数据标签。例如
<li>
<a id='user' data-user-id='5'>
<div>content here</div>
</a>
</li>
<li>
<a id='user' data-user-id='6'>
<div>content here</div>
</a>
</li>
我正在尝试获取使用jQuery单击的列表项的“用户ID”数据,但我似乎正在做的是获取第一个列表项的用户ID-在这种情况下始终为5。
$(document).on("touchend", "#user", function(e) {
e.preventDefault();
var userItem = $("#user");
var userID = userItem.data("user-id");
console.log(matchID);
});
我要去哪里错了?每个项目的唯一ID都可以使用,但是随后需要对其进行解析等,因此必须有更好的方法!对于这种事情是否有最佳实践?
最佳答案
尝试以此替换#user应该可以
ID选择器始终选择具有匹配ID的第一个元素。建议不要有多个具有相同ID的元素。尝试改用类名。
您可以使用以下代码以任何方式查询。
$(document).on("touchend", "#user", function(e) {
e.preventDefault();
var userID = $(this).data("user-id");
console.log(userID);
});