0

我的选择器现在jQuery('.pa_availability-pin table tbody tr').children('td').eq(1); 返回一个<td>对象我想选择<input>这个选定的元素<td>

如何在一个声明中做到这一点?

4

2 回答 2

2

只需将它们全部组合到 1 个选择器中:

jQuery('.pa_availability-pin table tbody tr td:eq(1) input');

或使用.find()

jQuery('.pa_availability-pin table tbody tr').children('td').eq(1).find('input');
于 2013-09-26T14:19:37.697 回答
2
jQuery('.pa_availability-pin table tbody tr > td:eq(1) > input');

但是,我们可以稍微优化一下。table tbody tr td是多余的,因为这些元素中的每一个都必须包含在另一个元素中。您可以安全地将其减少为td

jQuery('.pa_availability-pin td:eq(1) > input'); // zero-based

Where>指定一个直接的孩子,这是你似乎想要的。

此外,:eq它不是 CSS 选择器,因此要优化您的选择器,请:nth-child改用:

jQuery('.pa_availability-pin td:nth-child(2) > input'); // not zero-based

如果您的周围有另一个元素input(例如标签),只需>从选择器中删除 。

于 2013-09-26T14:21:30.547 回答