循环使用jQuery:如何将ID发送到Web服务?

时间:2013-09-07 22:33:14

标签: jquery jquery-1.9

我正在论坛中进行投票功能。我正在循环搜索帖子的答案,每个答案都有一个唯一的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的网络服务。

我尝试过什么/想到

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

1 个答案:

答案 0 :(得分:3)

您需要在jQuery中结合使用closestattr方法。

例如:

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

$(this)是点击

的元素的jquery对象

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

.attr('id')为您提供遍历到元素

的id属性中的值

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