What is the difference between jQuery's space and > selectors?

后端 未结 4 1138
日久生厌
日久生厌 2021-02-08 07:48

What\'s the difference between the space and > selectors? And possibly related, how can I look for something that\'s the direct child of something else, and not lower down the d

相关标签:
4条回答
  • 2021-02-08 08:35

    As already mentioned, a space will select any descendant, whereas > will select only immediate children. If you want to select only grandchildren or great-grandchildren, then you could use this:

    #foo > * > * > .bar
    

    (all elements with class "bar" which are great grandchildren of the element with id "foo")

    0 讨论(0)
  • 2021-02-08 08:43

    In CSS, > means "direct child of": only nodes that are direct children are selected.

    While a space means "any descendant of": direct children and children of those children could be selected.

    I would wager jQuery uses the same convention.

    0 讨论(0)
  • 2021-02-08 08:51

    look at this..

    $(".testit > a") //match the first <a> tag below
    $(".testit a") // matches all <a> tag below
    
    <p class="testit">
      <a href="#">All the rules will match this</a>
      <span>
        <a href="#">second rule can only select this</a>
      </span>
    </p>
    
    0 讨论(0)
  • 2021-02-08 08:53

    For:

    <ul>
      <li>Item 1</li>
      <li>Item 2
        <ul>
          <li>Item 2.1</li>
          <li>Item 2.2</li>
        </ul>
      </li>
      <li>Item 3</li>
    </ul>
    

    For example

    $("ul > li").addClass("blah");
    

    adds class "blah" to 1 2 and 3 whereas:

    $("ul li").addClass("blah");
    

    add class "blah" to every list element.

    I'm not sure what you're referring to with < and ? operators.

    0 讨论(0)
提交回复
热议问题