What is the difference direct descendent (>) vs. descendant in jQuery selectors?

后端 未结 7 550
感情败类
感情败类 2021-02-04 03:53

What\'s the difference between these two jQuery statements? They seem to do the same thing by getting all the children div tags.

$(\"#mainblock div\")

相关标签:
7条回答
  • 2021-02-04 04:04

    $("#mainblock div") find all the divs under #mainblock

    $("#mainblock > div") only found its child

    suppose you have below HTML structure:

        <div id="mainblock"> 
          <div>
            <div></div> 
            <div></div>
          </div>
         <div></div>
         <div></div>
       </div>
    

    Then

    $("#mainblock div").length = 5
    $("#mainblock > div").length = 3
    
    0 讨论(0)
  • 2021-02-04 04:07
    $("#mainblock div")
    

    Matches any div element that is a descendant of #mainblock.

    $("#mainblock > div")
    

    Matches any div element that is a child of #mainblock .

    check http://www.w3.org/TR/CSS2/selector.html

    0 讨论(0)
  • 2021-02-04 04:13

    Have a look at jQuery Selectors

    Child Selector ("parent > child") - Hierarchy Selects all direct child elements specified by "child" of elements specified by "parent".

    Descendant Selector ("ancestor descendant")- Hierarchy Selects all elements that are descendants of a given ancestor.

    0 讨论(0)
  • 2021-02-04 04:14

    The first one will select any div that is a child of `#mainblock' at any level. The second will select any div that is an immediate child.

    See this link for more info on the CSS > selector which behaves the same as in jQuery.

    0 讨论(0)
  • 2021-02-04 04:15
    $("#mainblock div")
    

    This one target all DIVs inside "#mainblock" not matter it's direct child of "#mainblock", or child of child of main block or so on.

    $("#mainblock > div")
    

    This will target only direct child DIVs of "#mainblock" and ignore other DIVs. This one is faster then above in case you have only direct childs. Because it's not try to find inside other elements of childs.

    0 讨论(0)
  • 2021-02-04 04:16

    $("#mainblock > div") = the childs only level

    $("#mainblock div") = all the childs+ desendents.

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