<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匹配
答案 0 :(得分:6)
所以你想在第二个表的第二个表行中的第二个表格单元格? eq
功能可以轻松实现
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();