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")
$("#mainblock > div")
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")
$("#mainblock > div")
$("#mainblock > div")
= the childs only level$("#mainblock div")
= all the childs+ desendents.Matches any div element that is a descendant of #mainblock.
Matches any div element that is a child of #mainblock .
check http://www.w3.org/TR/CSS2/selector.html
The first one will get all
div
s descendant of#mainblock
. The second one will get alldiv
s that are immediate children of#mainblock
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.
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.
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.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.