我有一张如下表
<table>
<tr>
<td>
<table>
<tr>
<td>Name 1</td>
<td>Red</td>
</tr>
<tr>
<td>Name 2</td>
<td>Blue</td>
</tr>
<tr>
<td>Name 3</td>
<td>Green</td>
</tr>
<tr>
<td>Name 4</td>
<td>Yellow</td>
</tr>
</table>
</td>
</tr>
</table>
我想选择&#34;名称3&#34;。这该怎么做? 我试过了
$('table table tr td ')
但它返回名称1。 让我说我没有给任何人id。我知道我错过了一些非常愚蠢的东西!请帮帮我。
答案 0 :(得分:4)
您希望根据父级子元素中的数字选择元素。使用:nth-child()
CSS / jQuery API可以获得好运。
$('table table tr:nth-child(3) td');
我认为这是理想的!
另请注意,它是一个CSS元素选择器,jQuery使用所有CSS选择器来选择元素。
更准确地说,您只获得第一个td,您可以使用以下代码:
$('table table tr:nth-child(3) td:first-child');
http://api.jquery.com/nth-child-selector/(有关儿童选择的更多信息)
https://api.jquery.com/first-child-selector/(关于初选儿童的更多信息)
如果在CSS中使用相同的代码,您将获得相同的输出。
为什么呢?因为你在jQuery中使用的选择器在CSS中是完全相同的。您需要更改的是如何实现元素的属性。
祝你好运!答案 1 :(得分:2)
您可以选择内容like this:
$('table table tr td:contains(Name 3)')
或者您可以选择the third row specifically:
$('table table tr:nth-child(3) td')
or:
$('table table tr:eq(2) td');
答案 2 :(得分:1)
处理此问题的最佳方法是为HTML中的各个元素提供某种标识符(例如,每行的唯一id
值,第一个class
的常见值{每行{1}}等。这种信息真正使jQuery选择器 真正 强大。
但是,如果仅限于使用您当前的代码,我可能会使用的选择器(以保证我得到了我想要的元素)将是:
<td>
我更喜欢这种风格(而不是&#34;单选择器&#34;方法),因为它往往更快,并且可以让您对选择的范围有更严格的控制。