Jquery>选择

时间:2010-06-28 14:48:47

标签: jquery jquery-ui jquery-selectors

在此示例(工作中)单击按钮时,该部分切换为可见/不可见。 很棒,但第2行的代码实际上是做什么的? 我找到了对eq(0)部分here on jQuery.com的引用,但是'>'我没有线索。在firebug下,如果'>'似乎并不重要是否存在。

 $("#btnHideShow").click(function() {
                 $("> :eq(0)", "#toggleGrid").toggle("blind");
                 if ($("#btnHideShow").val() == "Hide List") {
                     $("#btnHideShow").val('Show List');
                 } else {
                     $("#btnHideShow").val('Hide List');
                 };
             });

4 个答案:

答案 0 :(得分:5)

据我所知,你使用>来指定一个直接的孩子,而不是任何后代。

假设:

<div class="parent">
  <ul class="child">
    <a href="#">foo</a>
    <a href="#">bar</a>
  </ul>
</div>

.parent a会匹配这两个链接,但.parent > a不会,因为它们不是直接后代。同样,.parent > .child也会匹配,.child > a也会匹配。

在您提供的代码中,您匹配#toggleGrid的直接子项。如果您只有直接的孩子,如果包含>,您可能不会注意到差异 - 但您可能需要在以后的某个时候将其更具体。

我总是觉得试图插入其他人的代码是有问题的 - 你试图理解它是一件好事:)

如果您需要更多信息,请查看this article

答案 1 :(得分:3)

引用元素的直接子元素是child selector。该行与(<更好地编写,IMO)相同:

$('#toggleGrid > :first').toggle('blind');

答案 2 :(得分:0)

&GT;是一个子选择器:

5.6儿童选择器 当元素是某个元素的子元素时,子选择器匹配。子选择器由两个或多个由“&gt;”分隔的选择器组成。

实施例(一个或多个):

以下规则设置作为BODY子项的所有P元素的样式:

body&gt; P {线高:1.3} 实施例(一个或多个):

以下示例结合了后代选择器和子选择器:

div ol&gt; li p 它匹配作为LI的后代的P元素; LI元素必须是OL元素的子元素; OL元素必须是DIV的后代。请注意“&gt;”周围的可选空格组合器已被排除在外。

答案 3 :(得分:-1)

根据SelectORacle,>之前没有选择器,选择任何其他元素的子元素。 因此,选择器看起来像是指在“toggleGrid”元素下找到的任何元素的第一个子元素。

SelectORacle在这里:http://penguin.theopalgroup.com/cgi-bin/css3explainer/selectoracle.py但请注意它不理解jQuery-isms。

编辑 - 实际上我会在这里留下SelectORacle链接,我错了,因为我混淆了“:eq(0)”;它与“:first-child”duhh不一样。因此@tv等人是正确的,这只是“toggleGrid”下的第一个孩子。

相关问题