jquery DOM Traversal

by vijayram_a

HTML

<div class="grandparent">
    <div class="parent">
        <div class="child">
            <span class="subchild"></span>
        </div>
    </div>
    <div class="surrogateParent1"></div>
    <div class="surrogateParent2"></div>
</div>

JavaScript

// Parents
 
// returns [ div.child ]
console.log($( "span.subchild" ).parent());
 
// returns [ div.parent ]
console.log($( "span.subchild" ).parents( "div.parent" ));
 
// returns [ div.child, div.parent, div.grandparent ]
console.log($( "span.subchild" ).parents());
 
// returns [ div.child, div.parent ]
console.log($( "span.subchild" ).parentsUntil( "div.grandparent" ));
  
// returns [ div.child ]
console.log($( "span.subchild" ).closest( "div" ));
 
// returns [ div.child ] as the selector is also included in the search:
console.log($( "div.child" ).closest( "div" ));

// Children

// returns [ div.parent, div.surrogateParent1, div.surrogateParent2 ]
console.log($( "div.grandparent" ).children( "div" ));

// returns [ div.child, div.parent, div.surrogateParent1, div.surrogateParent2 ]
console.log($( "div.grandparent" ).find( "div" ));

// Siblings
 
// returns [ div.surrogateParent1 ]
console.log($( "div.parent" ).next());
 
// returns [] as No sibling exists before div.parent
console.log($( "div.parent" ).prev());
 
// returns [ div.surrogateParent1, div.surrogateParent2 ]
console.log($( "div.parent" ).nextAll());
 
// returns [ div.surrogateParent1 ]
console.log($( "div.parent" ).nextAll().first());
 
// returns [ div.surrogateParent2 ]
console.log($( "div.parent" ).nextAll().last());
 
// returns [ div.surrogateParent1, div.parent ]
console.log($( "div.surrogateParent2" ).prevAll());
 
// returns [ div.surrogateParent1 ]
console.log($( "div.surrogateParent2" ).prevAll().first());
 
// returns [ div.parent ]
console.log($( "div.surrogateParent2" ).prevAll().last());

// returns [ div.surrogateParent1, div.surrogateParent2 ]
console.log($( "div.parent" ).siblings());
 
// returns [ div.parent, div.surrogateParent2 ]
console.log($( "div.surrogateParent1" ).siblings());