jQuery的 – 获取一个表单元格的文本值在同一行作为一个单击的元素

我点击表格单元格中的链接。 我需要在同一个表格行中获取特定单元格的值。

<tr> <td class="one">this</td> <td class="two">that</td> <td class="three">here</td> <td class="four"><a href="#">there</a></td> </tr> <tr> <td class="one">qwqw</td> <td class="two">dfgh</td> <td class="three">ui</td> <td class="four"><a href="#">there</a></td> </tr> 

我有一个点击处理程序连接到第四个单元格中的链接。 该点击处理程序调用一个打开模式窗口的函数。 当模式中的表单被提交时,我也想将td class =“two”的值从链接被点击的行中传递给这个模式。

这是发送模式的函数(问题区域正在获取var Something的正确值):

 var Send = function() { var Name = $( '#name' ).val(); var Something = $(this).closest('td').siblings('.two').text(); // version 1. doesn't work var Something = $(this).closest('tr').siblings('td.two').text(); // version 2 also doesn't work var Something = $(this).attr('class'); // version 3. just a test but also doesn't work $.ajax( { async: false, data: { name: Name, somedata: Something }, type: 'POST', url: the url }); }; 

问题是,我不能得到正确的东西的价值。 它应该是td class = 2与clicked元素相同的行的值。

这一切的方式是一致的。 点击目标链接,调用名为Send_Click()的方法。 Send_Click做一些validation,然后调用Send(),但Something的值永远不会被填充。 这是因为this不是我在想什么? Hjelp!

你想.children()而不是( 文档在这里 ):

 $(this).closest('tr').children('td.two').text(); 

尼克有正确的答案,但我想补充一点,你也可以得到单元格数据,而不需要类名

 var Something = $(this).closest('tr').find('td:eq(1)').text(); 

:eq(#)有一个从零开始的索引( 链接 )。

它应该工作正常:

 var Something = $(this).children("td:nth-child(n)").text(); 

所以你可以使用parent()来达到父tr,然后使用find来收集第二类的td

  var Something = $(this).parent()。find(“。two”)。html(); 

要么

  var Something = $(this).parent()。parent()。find(“。two”)。html(); 

使用尽可能多的父()什么深度的点击对象根据TR行

希望这个作品…

这也将起作用

 $(this).parent().parent().find('td').text()