{"name":"offsetParent","type":"method","title":".offsetParent()","deprecated":null,"removed":null,"desc":"Get the closest ancestor element that is positioned.","categories":["offset","traversing/tree-traversal"],"entries":[{"return":"jQuery","signatures":{"added":"1.2.6"},"examples":{"desc":"Find the offsetParent of item \"A.\"","height":"250","code":"$( \"li.item-a\" ).offsetParent().css( \"background-color\", \"red\" );","html":"\n\n"},"longdesc":"\n

Given a jQuery object that represents a set of DOM elements, the .offsetParent() method allows us to search through the ancestors of these elements in the DOM tree and construct a new jQuery object wrapped around the closest positioned ancestor. An element is said to be positioned if it has a CSS position attribute of relative, absolute, or fixed. This information is useful for calculating offsets for performing animations and placing objects on the page.

\n

Consider a page with a basic nested list on it, with a positioned element:

\n
\n<ul class=\"level-1\">\n  <li class=\"item-i\">I</li>\n  <li class=\"item-ii\" style=\"position: relative;\">II\n    <ul class=\"level-2\">\n      <li class=\"item-a\">A</li>\n      <li class=\"item-b\">B\n        <ul class=\"level-3\">\n          <li class=\"item-1\">1</li>\n          <li class=\"item-2\">2</li>\n          <li class=\"item-3\">3</li>\n        </ul>\n      </li>\n      <li class=\"item-c\">C</li>\n    </ul>\n  </li>\n  <li class=\"item-iii\">III</li>\n</ul>\n    
\n

If we begin at item A, we can find its positioned ancestor:

\n
\n$( \"li.item-a\" ).offsetParent().css( \"background-color\", \"red\" );\n    
\n

This will change the color of list item II, which is positioned.

\n "}]}