获取行中的第一个和第二个td元素

我有一个ajax调用附加到表行内的图片的click事件。 单击pic并启动click事件后,我需要从该行中获取第一个和第二个td元素。 我是jQuery的新手,所以我下面的内容是我最近的尝试(不工作……)。 在执行这些行之后,变量firstNamelastName都会被undefined

  $('.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') }, . . }); }); 

这是一个示例表行。 最后一个td元素中的图像包含.click事件。 我想抓住包含文本“phinneas”和“ferbseven”的前两个。

   phinneas   ferbseven   7735   Agent   SAF  &nbsp 07070900   6/5/2013 10:35:38 AM   DANTAK   Error   Details  |  Edit   Program Details   

使用closest

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

此外,您需要为td元素使用text而不是val ,因为它仅对输入控件有意义。

首先,只有表单元素具有.val属性。

你应该使用.text因为它是一个td

尝试使用:eq psuedo选择器

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

要获取其内容,您可以执行以下操作:

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

最后两行也可以是:

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