使用jQuery选择行的第二个单元格

5
我有以下的HTML表格。
<table>
<tr class="trSelected">
<td>One</td>
<td>two</td>
</tr>
</table>

我只想获取第二列中的文本(即'two')

我尝试过

$('.trSelected td').eq(2).val()

但它返回一个空字符串,如何通过jQuery实现呢?

可能是重复的问题:jQuery - 如何选择给定行的第一个单元格? - Chamith
5个回答

12

您应该使用以下结构:

$('.trSelected td').eq(1).text()
或者
$('.trSelected td:eq(1)').text()

eq选择器使用从零开始的索引,您必须使用text方法而不是val方法。


4

列表索引从0开始,而不是从1开始。

您正在尝试选择不存在的第3列。此外,.val()方法仅用于获取和设置表单字段,而不是普通的html元素。请改用.text()!

$('.trSelected td').eq(1).text()

可能有效。


3
使用 nth-child 选择器来获取第二个单元格。
$(".trSelected td:nth-child(2)").val()

2
首先,eq()的参数是基于0的索引,所以要获取第二个元素,您需要调用eq(1)
其次,val()方法用于从输入中检索值,而您正在处理的是td元素,而不是输入。
$('.trSelected td').eq(1).text()

将做您期望的事情

0
你可以使用nth-child选择器或者eq(1)。此外,你应该使用.text()或.html()而不是.val()。
在jsFiddle中的一个例子:http://jsfiddle.net/heTyW/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接