Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get a value of the closest td with class on button click?

I have table rows with data and buttons. http://codepen.io/leongaban/pen/nuIkd

Each button corresponds to each row, also when you click a button it changes class names from hide to un_hide the next step is to retrieve the text value of the td with class contact_name in the row that the clicked button belongs too.

Table structure:

<tr>
  <td class="contact_name" style="padding: 7px 0;">
    Name 1
  </td>
  <td>
      <button class="btn_hide">Hide</button>
  </td>
</tr>
<tr>
  <td class="contact_name" style="padding: 7px 0;">
      Name 2
  </td>
  <td>
      <button class="btn_hide">Hide</button>
  </td>
</tr>

Using this jQuery, it will get ALL text values of .contact_name in all the rows

var name = $('.contact_name').text();

So I tried this to get the text value of the 'closest' .contact_name td

var name = $(this).closest('.contact_name').text();

However that returns blank for me :(

How would you get the Name 1 value by clicking the first Hide button?

like image 315
Leon Gaban Avatar asked Dec 17 '13 17:12

Leon Gaban


2 Answers

.contact_name is not parent from the clicked button.

var name = $(this).closest('tr').find('.contact_name').text();
like image 87
Ricardo Alvaro Lohmann Avatar answered Oct 07 '22 08:10

Ricardo Alvaro Lohmann


Try,

var name = $(this).closest('td').prev('.contact_name').text();

Or

var name = $(this).closest('tr').find('.contact_name').text();

DEMO

like image 5
Rajaprabhu Aravindasamy Avatar answered Oct 07 '22 09:10

Rajaprabhu Aravindasamy