1

有人可以解释选择器如何为不同的后代工作吗?我在网上看了一点,但到目前为止我发现的描述似乎并没有太大的不同。

例如,这三个有什么区别?

$('table tr')
$('table > tr')
$('table + tr')
4

3 回答 3

1
  1. 匹配所有带有标签名称 tr 的元素,这些元素是 table 的后代。
  2. 匹配所有带有标签名称 tr 的元素,这些元素是 table 的直接子元素。
  3. 匹配兄弟表之前的所有元素 tr。
于 2009-12-17T16:13:04.733 回答
0

table tr 是一个不好的例子,因为你不能有一个没有 table 的 tr,而且也不需要 jquery 函数

p span

这个选择 p 标签内的所有 span 标签

p > span

这个只选择 p 内的第一个嵌套跨度标签

p + span

仅选择标记中 p 之后的跨度标记

于 2009-12-17T16:13:11.870 回答
0

你不可能看起来非常努力,jQuery 的文档在这个主题上非常清楚。

给定一些简单的标记,

<div>
  <span id="A"></span>
  <p><br /><span id="B"></span></p>

  <form>
    <span id="C"></span>
    <span id="D"></span>
  </form>
</div>

这就是选择的工作方式:

  • $("div span")匹配 div 中的任何跨度,无论它们与 div 嵌套多远(A、B、C、D)
  • $("div > span")匹配作为 div 的直接后代的 span (A)
  • $("br + span")匹配跨度在 br (B) 旁边
  • $("form span")匹配表单内的跨度 (C, D)
  • $("form span:first")仅将第一个跨度与表单 (C) 匹配
于 2009-12-17T16:24:47.333 回答