Как выбрать правильный комментарий на странице с помощью jquery?

Всем привет.

Делаю ajax к кнопке лайков на комментариях. Не могу понять, как правильно выбрать элемент, к взаимодействию.

Есть цикл For, который выводит на страницу комментарии:

{% for com in com_view %}

    <div class="comment">
        <p class="comments_nickname">            
            <a href="{% url 'profile' com.user_link.id  %}"><span class="profile_link_comment">{{ com.user_link }}</span></a> | {{ com.comdata }}
        </p>
        <p class="comments_social_counter"><a id="up_com_video_like" class="comments_social_thumb" href="{% url "upvideocomlike" com.id %}"></a><span id="com_like_number">{{ com.get_plus }}</span></p>
        <p class="comments_main_text">{{ com.comtext }}</p>
        <hr>
    </div>

{% endfor %}


Я делаю ajax запрос с помощью jquery, к комментарию.

<script type="text/javascript">

    $('#up_com_video_like').click(function(e){
        e.preventDefault();

        $.ajax({
            url: '{% url "upvideocomlike" com.id %}',
            success: function(data){
                $('#com_like_number').html(data.count_like)                
            }
        });
    });

</script>


И получается, что если будет несколько комментариев, у них будет один и тот же ID. Поэтому либо код не будет работать, либо будут выбираться сразу все элементы. Также я не знаю, как в success передавать pk нужного комментария.
  • Вопрос задан
  • 275 просмотров
Решения вопроса 2
Bowen
@Bowen
Японский бог
И получается, что если будет несколько комментариев, у них будет один и тот же ID.

Используйте классы.
Ответ написан
intelligence
@intelligence
<a id="up_com_video_like" data-comid="{{ com.id }}" class="comments_social_thumb" href="{% url "upvideocomlike" com.id %}"></a


$('#up_com_video_like').click(function(e){
        e.preventDefault();

        $.ajax({
            url: '{% url "upvideocomlike" com.id %}',
            data: {'pk': $(this).attr('data-comid'), 'csrfmiddlewaretoken': '{{ csrf_token }}'},
            success: function(data){
                $('#main_like_number').html(data.count_like)                
            }
        });
    });

Примерно так, думаю суть должна быть понятно. Соответственно, во вьюшке находится коммент с pk=com.id и к нему привязывается лайк.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы