Get the first and second td elements in a string

I have an ajax call attached to a click event for pic inside a table row. Once the click is clicked and the click event starts, I need to grab the first and second td elements from this line. I am new to jQuery, so I have my last attempt (not working ..). The variables firstName and lastName end as undefined after these lines are executed

  $('.checkErrors').click(function () { var firstName = $(this).parent('tr td:first-child').val(); var lastName = $(this).parent('tr td:nth-child(2)').val(); $.ajax({ type: 'GET', url: '@Url.Action("GetErrors","AgentTransmission")', data: { term: $(this).attr('id') }, . . }); }); 

Here is an example table row. The image in the last td element contains the .click event. I would like to take the first two, which contain the text "phinneas" and "ferbseven".

 <tr> <td> phinneas </td> <td> ferbseven </td> <td nowrap> 7735 </td> <td> Agent </td> <td> SAF &nbsp;&nbsp 07070900 </td> <td> 6/5/2013 10:35:38 AM </td> <td> DANTAK </td> <td class="errorPlus"> Error </td> <td> <a href="/AgentTransmission/Details/2358">Details</a> <span> | </span> <a href="/AgentTransmission/Edit/2358">Edit</a> </td> <td align=center id=2358> <img src="/Content/images/magnify.gif" class="checkErrors" id=2358 alt="Program Details" /> </td> </tr> 
+4
source share
3 answers

use closest

 var $tr = $(this).closest(ยดtrยด); var firstName = $tr.find('td:first-child').text(); var lastName = $tr.find('td:nth-child(2)').text(); 

In addition, you need to use text instead of val for td elements, since it only makes sense for input controls.

+6
source

At first, only form elements have the .val property, therefore.

You should use .text , since this is td

Try using :eq psuedo selector

 var $tr; $tr.find('td:eq(0)').text(); $tr.find('td:eq(1)').text(); 
+2
source

To get your content, you can do this:

 var cells = $(this).closest('td').siblings('td'); var firstName = cells.eq(0).text(); var firstName = cells.eq(1).text(); 

These last two lines can also be:

 var firstName = $(cells[0]).text(); var firstName = $(cells[1]).text(); 
+1
source

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


All Articles