Get row data using jquery by clicking buttons for that row

I am having problems getting table data in a row if a button is selected. I have two buttons that approve and reject, and based on which buttons the user clicks, I want to capture data using a query. can get line numbers and stuff, not line data. I need to get id and tester.

that's what i

<table id="mytable" width="100%"> <thead> <tr> <th>ID</th> <th>Tester</th> <th>Date</th> <th>Approve</th> <th>Deny</th> </tr> </thead> <tbody> <tr class="test"> <td class="ids">11565 </td> <td class="tester">james</td> <td>2012-07-02 </td> <td><Button id="Approved" type="submit" >Approved</button> </td> <td><Button id="deny_0" type="submit" >Denied</button> </td> </tr> </tbody> </table> 

here is my javascript to get the tr and td number, but I'm not sure how to use it to get what I need

 $(document).ready(function() { /*$('#cardsData .giftcardaccount_id').each(function(){ alert($(this).html()); }); */ $('td').click(function(){ var col = $(this).parent().children().index($(this)); var row = $(this).parent().parent().children().index($(this).parent()); alert('Row: ' + row + ', Column: ' + col); // alert($tds.eq(0).text()); console.log($("tr:eq(1)")); // $("td:eq(0)", this).text(), }); }); 
+6
source share
4 answers
 $(document).ready(function(){ $('#Approved').click(function(){ var id = $(this).parent().siblings('.ids').text(); var tester = $(this).parent().siblings('.tester').text(); console.log(id); console.log(tester); }); });​ 

Jsfiddle

+7
source
 $(function(){ $('button').on('click', function(){ var tr = $(this).closest('tr'); var id = tr.find('.ids').text(); var tester = tr.find('.tester').text(); alert('id: '+id+', tester: ' + tester); }); });​ 

Fiddle

+5
source

I would use closest() to get tr and then go down from there.

 var tr = $('td').closest('tr') 

Also I think this is optional, in your example it will be $(this) :

 $(this).parent().children().index($(this)) // === $(this) 
+2
source
 $('table').on('click', 'button', function() { var parentRow = $(this).parent().parent(); var id = $('td.ids', parentRow).text(); var tester = $('td.tester', parentRow).text(); alert('id: ' + id + ', tester: ' + tester); });​ 
+1
source

Source: https://habr.com/ru/post/919540/


All Articles