У меня есть список кнопок в моем списке приложений с элементами, которые мне могут понравиться. Я использую здесь селектор id. Я хотел бы использовать селектор идентификаторов с идентификатором элемента, чтобы сделать селектор идентификаторов уникальным.
Как я могу получить идентификатор элемента и подключить его к селектору идентификатора для этого результата? 1. #голосуп-2 2. #voteup-раздел-2
Я пытался использовать data-id
Вот моя часть jquery:
<script type = "text/javascript">
$(document).ready(function(event){
$(document).on('click', '#voteup', function(event){
event.preventDefault();
var pk = $(this).attr('value');
$.ajax({
type: 'POST',
url: "{% url 'qa:answer_voteup' %}",
data: {'id': pk, 'csrfmiddlewaretoken': '{{ csrf_token }}'},
dataType: 'json',
success: function(response){
$('#voteup-section').html(response['form'])
console.info($('#voteup-section').html(response['form']))
},
error: function(rs, e){
console.info(rs.responseText);
},
});
});
});
</script>
Кнопка в html-части, здесь у меня есть селектор id с voteup-section-{{ answer.id }}
<div id = "voteup-section-{{ answer.id }}" data-id = "{{ answer.id }}">
<form action = "{% url 'qa:answer_voteup' %}" method = "post">
{% csrf_token %}
<button type = "submit" id = "voteup-{{ answer.id }}" name = "answer_id" value = "{{ answer.id }}" {% if is_voted_up %} class = "btn btn-danger btn-sm">Voted up! {% else %} class = "btn btn-primary btn-sm">Vote up!{% endif %} <span class = "badge badge-light">{{ answer.total_vote_up }}</span></button>
</form>
</div>
id.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы просто имеете в виду, что хотите, чтобы ваш обработчик кликов работал для всех этих элементов?:
<button type = "submit" id = "voteup-{{ answer.id }}"...
Вы можете использовать начинается с селектора для захвата всех кнопок, где id начинается с известного значения. Что-то вроде этого:
$(document).on('click', 'button[id^ = "voteup-"]', function(event){
//...
});
Это обработает щелчок для всех элементов <button> в документе, где их id начинается с "voteup-".
Другой вариант — назначить класс кнопкам.
<button ... class = "btn btn-danger btn-sm btn-vote" ...>Vote up!</button>
Я упростил HTML-код кнопки до класса, чтобы проиллюстрировать это. Класс "btn-vote" может быть любым по вашему выбору. Затем селектор jQuery становится
$(document).on('click', 'button.btn-vote', function(event){
//...
}
Проблема на стороне клиента, почему бы не показать код на стороне клиента?