我正在从模板引擎(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);
    });

07-24 09:44
查看更多