Вопрос

Я хочу добавить событие щелчка ко всем элементам, где `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 . .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top