Получить атрибут data через JQuery?
У меня есть такой HTML код, где кнопка "Удалить" выводиться циклом в PHP и хранит data-атрибут user-id. Когда я пытаюсь получить этот id в JQuery, то мне выводиться только id первой записи. То есть, при клике на остальные кнопки "Удалить" я получаю всегда одно значение data-user-id.
Как это исправить, помогите пожалуйста
// Удаление записи
$('document').ready(function() {
$('#btn-delete').click(function(e) {
console.log($('.btn-delete').data('user-id'));
});
});
<td>
<button class="btn btn-delete popup-open" data-user-id="<?= $user['id']; ?>" >Удалить</button>
</td>
Ответы (2 шт):
Автор решения: Андрей
→ Ссылка
Во-первых, поменяйте $('#btn-delete') на $('.btn-delete').
Во-вторых, попробуйте следующий код:
$('document').ready(function() {
$('.btn-delete').click(function(e) {
console.log($(e.current).data('user-id'));
});
});
Либо
$('document').ready(function() {
$('.btn-delete').click(function(e) {
console.log($(e.currentTarget).data('user-id'));
});
});
Автор решения: MoloF
→ Ссылка
$('document').ready(function() {
$('.btn-delete').click(function(e) {
console.log($(this).data('user-id'));
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<td>
<button class="btn btn-delete popup-open" data-user-id="<?= $user['id']; ?>" >Удалить</button>
</td>
document.querySelectorAll('.btn-delete').forEach(button => {
// button.onclick = e => {
// console.log(e.target.dataset.userId);
// }
button.onclick = function() {
console.log(this.dataset.userId);
}
});
<td>
<button class="btn btn-delete popup-open" data-user-id="<?= $user['id']; ?>" >Удалить</button>
</td>