jQuery选择器奇怪的问题

时间:2013-08-08 23:04:58

标签: javascript jquery

我在上一篇文章中有一个问题。

How to select second table structure under a div?

我有一个新的html集,就像

<div class ='tableDiv'>
  <table class='table'>
    ....
  </table>

  <table class='table'>
    ....
  </table>

  <table class='table'>
    ....
  </table>


</div>

...other stuff...

<div class ='tableDiv'>
  <table class='table'>
    ....
  </table>

  <table class='table'>
    ....
  </table>

  <table class='table'>
    ....
  </table>

</div>

other stuff

<div class ='anotherTableDiv'>
  <table class='table'>
    ....
  </table>

  <table class='table'>
    ....
  </table>
</div>

我正在尝试选择“tableDiv”div下的每个第二个表格。

从上一篇文章中我得到了。

$('.tableDiv table:even); as my last post answer

但是,我现在在'tableDiv'div下有3个表,选择器似乎从第一个'tableDiv'中选择第二个表,在第二个'tableDiv'上选择第一个表

我觉得even会从每个div中选择第二个,这是非常奇怪的。

任何人都可以帮我吗?非常感谢!

3 个答案:

答案 0 :(得分:4)

jsFiddle Demo

尝试使用nth-child选择器

$('.tableDiv table:nth-child(2)');//not 0 based

答案 1 :(得分:2)

您需要更改选择器,使其从每个.tableDiv中获取偶数表,现在它获取选择器中的所有表,然后从所有表中选择偶数表等。

您可以使用find()或上下文选择器轻松完成此操作:

$('table:even', '.tableDiv')

这不会让你获得第二个表,但是第一个和第三个表,因为这是:even所做的(如评论中所述,它基于零,使用:odd代替得到第二个表)

FIDDLE

答案 2 :(得分:0)

您将第三个表格div的类名设置为“anotherTableDiv”,但Jquery的目标是“.tableDiv”类。要么更改类的名称,要么创建一个单独的Jquery来定位第三个表。