jquery DOM Traversal

by Vijay Venkatan

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());