jQuery — Как найти идентификатор или строку, которые вызвали событие щелчка по действию?

#javascript #jquery #html

#javascript #jquery #HTML

Вопрос:

У меня есть HTML-таблица, и определенные строки принадлежат классу, и у каждой из этих строк есть идентификатор. Я прикрепил обработчик onclick к классу с помощью jquery. При нажатии на любую из строк в этом классе запускается событие щелчка. Но источник события распространяется на элемент в выбранной строке. Как получить идентификатор строки, содержащей td (источник события)?

HTML :

 <table>
    <tr class="onegroup" id="parent_1">
        <td> Item 1 </td>
        <td> Item 2 </td>
    </tr>
</table>
  

Jquery:

         $(".onegroup").click(function (event) {
          alert(event.target.id); // currently displays undefined as neither of the <td> have an id.
          //Want to display the id of the row ('parent_1')
         });
  

Комментарии:

1. Я думаю, вам больше всего помогло бы чтение руководства по jQuery об обработке событий .

Ответ №1:

С помощью jQuery вам не нужно будет искать event.target, поскольку контекст (this) устанавливается на элемент, на который нажимается, и который соответствует селектору.

Чтобы было понятнее: контекст будет установлен для первого элемента, который появляется в event-bubbling, который соответствует указанному селектору.

Из-за этого $(this).is('.onegroup') всегда будет возвращать true внутри вашей функции-обработчика, поскольку это селектор, к которому вы привязали щелчок.

   $(".onegroup").click(function () {
              alert($(this).attr("id"));
   }); 
  

Комментарии:

1. Это не совсем верно. this будет элементом, к которому привязан обработчик, не обязательно тот, который вызвал событие. Тем не менее, это именно то, чего хочет OP.