我有一个表格,我需要每行的前两个单元格可点击(不是整行)。当我单击第一个或第二个单元格时,我想获得同一行的第三个单元格的值。
为了澄清,当我按a1
时,我希望警报显示c1
,如果我按b2
,我希望它显示c2
,如果我按c3
我不希望发生任何事情。
正如您所看到的,我的alert($(this).parent(':nth-child(3)').text());
不起作用..我怎样才能实现这一目标?
$('td:nth-child(-n+2)').on("click", function(){
alert($(this).parent(':nth-child(3)').text()); //Doesn't work
});
td{
border: 1px solid black;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<table>
<tr>
<td>a1</td>
<td>b1</td>
<td>c1</td>
</tr>
<tr>
<td>a2</td>
<td>b2</td>
<td>c2</td>
</tr>
<tr>
<td>a3</td>
<td>b3</td>
<td>c3</td>
</tr>
</table>
答案 0 :(得分:8)
您需要使用.closest('tr')
..来选择父级tr和.find()
来选择td:nth-child(3)
$('td:nth-child(-n+2)').on("click", function(){
alert($(this).closest('tr').find('td:nth-child(3)').text());
});
答案 1 :(得分:4)
您可以使用
$('td:lt(2)').on("click", function () {
alert($(this).parent().find("td:eq(2)").text()); //Doesn't work
});
lt(2)
将获取索引小于2的指定元素eq(2)
将选择索引等于2的元素答案 2 :(得分:3)
答案 3 :(得分:0)
这项工作对我来说:
$('table tr').each(function(){
$(this).find('td:lt(2)').on("click", function () {
var text = $(this).parent().find("td:eq(2)").text();
console.log(text);
});
});