2011-07-19 39 views
2

行的第二个单元格,我有以下的HTML表格选择使用jQuery

<table> 
<tr class="trSelected"> 
<td>One</td> 
<td>two</td> 
</tr> 
</table> 

我只是想获得textsecond column(即 'two')

我试图

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

但returs一个空字符串 它是如何可能通过jQuery的?

+0

的可能的复制[?jQuery的 - 选择一个给定行的第一个单元格(HTTPS ://stackoverflow.com/questions/1425937/jquery-select-first-cell-of-a-given-row) – Chamith

回答

5

您应使用以下建筑:

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

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

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

3

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

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

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

可能工作。

+1

'val'不会为这个HTML工作 –

+0

谢谢,固定我的答案! – Powertieke

2

使用nth-child选择,以获得第二单元

$(".trSelected td:nth-child(2)").val() 
2

首先所有,eq()的说法是基于0的指数,因此要获得第二个元素,你需要调用eq(1)

其次,val()方法用于从输入中检索值,您正在处理td元素,而不是输入。

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

会做what you're expecting

0

你可以使用第n个孩子选择,或者你应该使用EQ(1)。此外,你应该在的jsfiddle使用的.text()或.html()而不是.VAL()

一个例子:http://jsfiddle.net/heTyW/