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()