【发布时间】:2013-06-04 08:11:54
【问题描述】:
我有 2 个 jQuery 选择表达式:
(1) $('html body table tbody tr td:nth-child(2) table tbody tr td table:nth-child(1) tbody tr:nth-child(2) td table tbody tr td:nth-child(2)')
对
(2) $('html body table tbody tr td table tbody tr td table tbody tr td table tbody tr td')
据我所知,第一个比第二个更具体,所以如果 (1) 返回一个元素,它也必须包含在 (2) 返回中。可能是 (2) 可以有多个元素(在我的情况下),所以它应该返回一个匹配元素的数组,不是吗?相反,它返回一些完全不同的元素,并且只返回一个(实际上它只返回第一个匹配项,但不是所有匹配项,包括那个匹配项,也匹配 (1) 选择表达式)。我是否误解了 css/jquery-selectors 的任何选择概念?
更新 1:
我尝试选择的页面是:
http://www.multitran.ru/c/m.exe?l1=1&l2=2&s=hello
更新 2:
我拥有的选择器 - 这是 chrome 的 get xpath 工具的结果(只是想快速获得一个好的 jquery 选择器)
【问题讨论】:
-
圣牛。这是我一生中见过的最大的选择器。
-
你不能像添加一个类或id什么的吗?
-
FWIW,您不必在选择器的路径中包含每个元素。后代选择器的存在是有原因的。
$('body > table table table table td')会很好,但即使这样也不漂亮。 -
还有嵌套表。其中4个......
-
@passionateCoder 还不如改成
$('.so'):)