Где этот JQuery не так?
-
08-07-2019 - |
Вопрос
Я хочу добавить событие щелчка ко всем элементам, где `id = & violot; "
$(document).ready(function () {
jQuery('#violacao').click(function() {
alert('teste');
});
});
Но только первая ссылка отвечает на клик. Это сгенерированный HTML-код:
<tr>
<td><a href="#" id="violacao">40954589</a></td>
<td>Perda de Comunicação</td>
</tr>
<tr>
<td><a href="#" id="violacao">88692020503</a></td>
<td>Perda de Comunicação</td>
</tr>
Когда я пытаюсь так:
jQuery("a").click(function() {
alert('teste');
});
Работает нормально, за исключением того, что затрагиваются все ссылки. Что не так?
Решение
идентификаторы в HTML должны быть уникальными (по одному на каждый документ). Измените идентификатор на класс (и используйте. Вместо #), и он должен работать.
Другие советы
Хотя то, что Стив Мейсон говорит, что это правда, проблема не в этом.
Если вы измените ID на класс, проблема не исчезнет: все ссылки будут затронуты.
Вместо этого, если вы хотите повлиять на один < A >, вам нужно выполнить одно из следующих действий:
a) Назначьте уникальные идентификаторы для каждого < A > ;, затем сделайте что-то, как вы делали в первую очередь; или р>
б) Назначьте классы и используйте: первый селектор:
jQuery("a.violacao:first").click( function (){
alert('teste');
} );
Это будет применяться к первому подходящему якору с классом violacao. В качестве альтернативы, если вы хотите повлиять на конкретную привязку, вы можете использовать: eq (index).
С полным списком селекторов можно ознакомиться на странице http://docs.jquery.com/Selectors . . р>