jQuery选择器选择具有特定动作属性的表单的第2行的第2行的第2单元格

时间:2012-01-04 06:33:06

标签: jquery jquery-selectors

<form action="blah">
  <table>...</table>
  <table>
     <tr>...</tr>
     <tr>  
         <td>...<td>
         <td> **some text that changes** </td>

鉴于上述html结构,我如何使用jQuery获取更改的文本

所以我希望jquery像这样搜索: - 寻找具有atrribute action =“blah”的形式 - 选择表格的第二个表格 - 选择表格的第2行(tr) - 选择行的第二个单元格(td) - 给我文字

这将有助于我大大理解jquery ......我是新手。

类似$('form [action =“blah”]')。tables(2).rows(2).cells(2).text但这不是一个有效的jquery匹配

3 个答案:

答案 0 :(得分:6)

所以你想在第二个表的第二个表行中的第二个表格单元格? eq功能可以轻松实现

DEMO

var text = $("table:eq(1) tr:eq(1) td:eq(1)").text();

另请注意,您没有正确关闭此表格单元格:

<td>...<td>

应该是

<td>...</td>

修改

如果页面上还有其他表格,并且您想确保在表单中获得第二个表格,那么请将表单添加到您的选择器中:

var text = $("form[action='blah'] table:eq(1) tr:eq(1) td:eq(1)").text();

答案 1 :(得分:2)

您可以使用.eq(index) 要选择第二个元素,请使用eq(1) 工作jsFiddle

答案 2 :(得分:2)

然后使用find向下钻取目标。亚当有正确的想法。你只是想避免制作一个巨型选择器。这是可读性和速度之间的权衡。

如果您想要完全优化,请随意使用find()进行每一步。但是,除非重复评估此选择器,否则无关紧要。

$('form[action="blah"]').find("table:eq(1) tr:eq(1) td:eq(1)").text();

jsFiddle