如何使用jQuery获取表单元格值

如何使用jQuery获取表单元格值,jquery,html-table,cell,Jquery,Html Table,Cell,我正在尝试使用jQuery获取一个我无法控制的表的td值。在这个网站上有一个很好的例子,但它引用了一个列,而不是每个tr中的多个列 我也没有表或行的id。。。对于td,仅类=列数据 $('#mytable tr').each(function() { var customerId = $(this).find("td").eq(2).html(); } 将获得固定tr的单个td 以下是我的表格数据: <tr valign="top"> <td clas

我正在尝试使用jQuery获取一个我无法控制的表的td值。在这个网站上有一个很好的例子,但它引用了一个列,而不是每个tr中的多个列

我也没有表或行的id。。。对于td,仅类=列数据

$('#mytable tr').each(function() {
    var customerId = $(this).find("td").eq(2).html();    
}
将获得固定tr的单个td

以下是我的表格数据:

<tr valign="top">
    <td class="columnaction" valign="center">
        <img src="../images/spacer.gif" width="1" height="1" />
        <a href="javascript:void(0);" class="columnactionlink" onclick="return doAccept('599577', '1', '','');" alt="Accept">Accept</a>
    </td>
    <td class="columndata">Message</td>
    <td class="columndata">Test</td>
    <td class="columndata"></td>
    <td class="columndata"></td>
    <td class="columndata">04/09/2011 23:59</td>
    <td class="columndata">04/09/2011</td>
    <td class="columndata">05/12/2011 07:00</td>
    <td class="columndata">05/13/2011 07:00</td>
    <td class="columndata"></td>
    <td class="columndata">Doe, Jeffrey A. (xx)</td>
    <td class="columndata">913014405580</td>
    <td class="columndata">Skip</td>
    <td class="columndata">04/09/2011 16:37</td>
    <td class="columndata">C</td>
    <td class="columndata">Doe,J</td>
    <td class="columndata">04/09/2011 16:37</td>
    <td class="columndata">04/09/2011 23:59</td>
    <td class="columndata">04/09/2011 16:34</td>
</tr>
以下是对类似问题的参考:
这是您需要的选择器:

$('#mytable tbody tr td:nth-child(2)')

使用.text而不是.html。

正如@danip在他的声明中指出的那样,您可以通过 有效的CSS选择器

$('#mytable tbody tr td:nth-child(2)')
描述一下他在这里做什么

他通过使用mytable对id=mytable的表进行寻址来选择该表 然后他走到桌旁 他选择此表的所有TR,但进一步定义 选择每个tr下的所有tds 最后,他从所有这些tds中只为表中的每个tr选择第二个on! 您可以像这里一样通过每个元素迭代返回的dom元素,并通过HTML或文本获取HTML或Textcontent

$('#mytable tbody tr td:nth-child(2)').each(function() {
   output += $(this).text();
});
看看这个jsfiddle,自己试试看


与此处上下文无关,但可能有助于您: 如果您的行数超过100行左右,则上面的代码会稍微慢一点,1000行和性能会慢很多,在这种情况下,您可以使用:

$('td:nth-child(2)', '#mytable') //$(selector, context)
以及一个for循环,您应该首先在其中缓存该对象,如

var items = $('td:nth-child(2)', '#mytable');
for(var i=0;i<items.length;i++)
{
    //your code
}
问候,,
SJ

在示例表中,您试图提取什么@Jeff虽然唯一看起来像id的东西是913014405580,这不是你例子中的第二个td,但我还是要问一下。您是否在每个函数{}中执行任何操作?因为变量的作用域可能会影响结果。如果我想使用ID获取给定行的每个列值,该怎么办?