#javascript #jquery
#javascript #jquery
Вопрос:
Я знаю, что это странно, но существующий код, над которым я работаю, имеет повторяющиеся идентификаторы вместо класса.
<div class="67275686" id="sy_brn"><b>Some Text Goes Here 1</b></div>
<div class="1227552" id="sy_brn"><b>Some Text Goes Here 2</b></div>
<div class="4527552" id="sy_brn"><b>Some Text Goes Here 3</b></div>
я пытаюсь получить значение класса, используя sy_brn
ID.
ожидая получить значение, подобное-
$('#sy_brn').click(function() {
var value = $(this).attr('class');
});
он не работает, так как несколько идентификаторов на одной странице не работают.
У меня нет гибкости для преобразования всех <идентификаторов div в class .
Есть ли какой-нибудь способ, которым я могу вызвать щелчок для идентификатора sy_brn и получить значение класса?
Комментарии:
1. попробуйте
$('[id="sy_brn"]').click(
2. Это не только странно, недопустимо иметь несколько одинаковых элементов
id
. Я бы исправил это, но если это невозможно, я бы запросил все элементы на основе какого-то другого общего аспекта, например, их положения в DOM.
Ответ №1:
Используйте querySelectorAll
const els = document.querySelectorAll("#sy_brn");
els.forEach(el => el.addEventListener("click", ev => alert(ev.currentTarget.classList)));
<div class="67275686" id="sy_brn"><b>Some Text Goes Here 1</b></div>
<div class="1227552" id="sy_brn"><b>Some Text Goes Here 2</b></div>
<div class="4527552" id="sy_brn"><b>Some Text Goes Here 3</b></div>
Ответ №2:
Используйте приведенный ниже фрагмент текста. Я думаю, это сработает.
$('div[id="sy_brn"]').click(function() {
var value = $(this).attr('class');
console.log(value)
});