Где этот JQuery не так? - PullRequest
       13

Где этот JQuery не так?

1 голос
/ 11 марта 2009

Я хочу добавить событие click ко всем элементам, где `id =" violacao ":

$(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');
});

Работает нормально, за исключением того, что затронуты все ссылки. Что не так?

Ответы [ 2 ]

19 голосов
/ 11 марта 2009

идентификаторов в HTML должны быть уникальными (по одному на каждый документ). Измените идентификатор на класс (и используйте. Вместо #), и он должен работать.

1 голос
/ 11 марта 2009

Хотя то, что Стив Мейсон говорит, что это правда, настоящая проблема не в этом.

Если вы измените ID на класс, проблема не исчезнет: все ссылки будут затронуты.

Вместо этого, если вы хотите воздействовать на один , вам следует выполнить одно из следующих действий:

a) Назначьте уникальные идентификаторы каждому , затем сделайте что-то, как вы делали в первую очередь; или

b) Назначьте классы и используйте: первый селектор:

jQuery("a.violacao:first").click( function (){
  alert('teste');
} );

Это будет применяться к первому подходящему якору с классом violacao. В качестве альтернативы, если вы хотите повлиять на конкретную привязку, вы можете использовать: eq (index).

Для получения полного списка селекторов, посетите http://docs.jquery.com/Selectors.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...