JQuery - Получите значение первого td в таблице

Я пытаюсь получить значение первого td в каждом TR, когда пользователи нажимают "щелчок".

Результат ниже произведет aa, ee или ii. Я думал об использовании самого близкого ('TR').. но это всегда производило "Объектный объект". Не уверенный, что сделать на этом.

Мой HTML

 <table>
   <tr>
      <td>aa</td>
      <td>bb</td>
      <td>cc</td>
      <td>dd</td>
      <td><a href="#" class="hit">click</a></td>
   </tr>
   <tr>
      <td>ee</td>
      <td>ff</td>
      <td>gg</td>
      <td>hh</td>
      <td><a href="#" class="hit">click</a></td>
   </tr>
   <tr>
      <td>ii</td>
      <td>jj</td>
      <td>kk</td>
      <td>ll</td>
      <td><a href="#" class="hit">click</a></td>
   </tr>
</table>

JQuery

$(".hit").click(function(){

 var value=$(this).// not sure what to do here

 alert(value)  ;

});
29
задан Prince Prasad 16 October 2018 в 08:37
поделиться

5 ответов

$(this).parent().siblings(":first").text()

parent дает вам вокруг ссылки,

siblings дает все теги в этом ,

: first дает первый согласованный элемент в наборе.

text () дает содержимое тега.

62
ответ дан 28 November 2019 в 00:36
поделиться

В конкретном случае, приведенном выше, вы могли жонглировать родителями и детьми.

$(this).parents("tr").children("td:first").text()
11
ответ дан 28 November 2019 в 00:36
поделиться
$(".hit").click(function(){
   var values = [];
   var table = $(this).closest("table");
   table.find("tr").each(function() {
      values.push($(this).find("td:first").html());
   });

   alert(values);    
});

Вам следует избегать $(".hit"), это действительно неэффективно. Попробуйте вместо этого использовать делегирование событий.

4
ответ дан 28 November 2019 в 00:36
поделиться

Это должно работать:

$(".hit").click(function(){    
   var value=$(this).closest('tr').children('td:first').text();
   alert(value);    
});

Объяснение:

  • .closest ('tr') получает ближайшего предка, который является элементом (так в данном случае строка, в которой находится элемент ).
  • .children ('td: first') получает всех дочерних элементов этого элемента, но с помощью селектора : first мы сокращаем его до первого элемент.
  • .text () получает текст внутри элемента

Как вы можете видеть из других ответов, есть несколько способов сделать это.

40
ответ дан 28 November 2019 в 00:36
поделиться

Установите firebug и используйте console.log вместо alert . Тогда вы увидите, к какому элементу вы обращаетесь.

3
ответ дан 28 November 2019 в 00:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: