Looping with jQuery: How to send ID to web-service?



我正在论坛中开发投票功能。我正在循环浏览帖子的答案,每个答案都有一个唯一的 ID。每个"答案"都有一些文本、日期和其他数据。

我还添加了一个用户点击投票的图像,带有一个类:

<asp:Image runat="server" ImageUrl="~/Resources/Images/UpVoteImg.png" CssClass="upvote"/>

在我的脚本中,我使用类upvote捕获所有点击事件:

<script>
    $('.upvote').click(function () {
        var url = '<%= ResolveUrl("~/services/forumservice.asmx/voteup") %>';
        var userId = <%=SystemContext.Instance.SystemUser.UserId %>;
        var data = '{"entry":"' + 'HOW_DO_I_GET_YOU?' + '", "userid":"' + userId + '"}';
        $.ajax({
            type: "POST",
            url: url,
            contentType: "application/json; charset=utf-8",
            data: data,
            success: function () {
                alert('Thanks');
            },
            error: function () {
            }
        });
    });
</script>

我的问题:单击此图像时,我想使用答案的ID调用Web服务。

我尝试过/想到了什么

  • 我确信这个关键字是一种方式,如果将一些数据属性添加到图像中。我找不到示例(可能是错误的搜索词)
  • 在图像上创建一个 onclick(),它设置了一个私有字段,然后我在点击事件中读取(是的,我想避免这种情况)
您需要

在jQuery中使用closestattr方法的组合。

例如:

var userId = $(this).closest(.answercontainer).attr('id');

$(this) 是单击的元素的 jquery 对象

.closest(selector)向上遍历 DOM 树,直到它到达选择器的匹配项

.attr('id')为您提供遍历到元素的 id 属性中的值

如果 ID 在 DOM 中的其他位置,您可能需要查看其他一些遍历方法,例如 siblingsfind

相关内容

最新更新