如何在jquery upvote插件函数的参数中发送元素id

时间:2017-01-31 01:13:54

标签: javascript jquery ajax jquery-ui jquery-plugins

 var callback = function(data) {

        $.ajax({
            url: '/vote/',
            type: 'post',
            data: {
                id: data.id,
                up: data.upvoted,
                down: data.downvoted,
                star: data.starred
            }
        });
    };

    $('.upvote').upvote({id: /how to send id of upvoted div here/, callback: callback});

我的django模板代码是:

    <div id="topic-{{object.id}}" class="upvote">
            <a class="upvote"></a>
            <span class="count">{{object.upvotes|sub:object.downvotes}}</span>
            <a class="downvote"></a>
            <a class="star"></a>
            </div>

我可以从div的id属性中提取数字部分。我只是想知道如何在ajax调用的upvote函数中发送id。

我正在使用Upvote

1 个答案:

答案 0 :(得分:1)

如果您要发送所点击的div的ID,可以像这样设置data-id属性:

<div data-id="123">...</div>

如果dom中没有这样的属性,则该值将保持未定义。因此,在您的情况下,您将要将div设置为如下:

<div data-id="topic-{{object.id}}" class="upvote">

设置data-id后,您可以从选项对象中忽略id

$('.upvote').upvote({callback: callback});