.offsetParent()
返回: jQuery
.offsetParent()
描述:返回最接近的有定位的祖先元素。
加入于: 1.2.6
.offsetParent()该方法不接受任何参数
给定一个jQuery对象,它代表了一个DOM元素的集合,.offsetParent()
方法允许我们在DOM树中搜索遍这些元素的祖先元素,并构造一个新的jQuery对象,包裹了最近的有定位的祖先元素。一个元素,如果它的CSS 属性position是relative、absolute或者fixed,它会被称是有定位的。在计算偏移以实际动画,以及在网页上放置对象的时候,这个信息很有用。
设想有个网页,带有基本的嵌套列表,以及一个有定位的元素:
<ul class="level-1"> <li class="item-i">I</li> <li class="item-ii" style="position: relative;">II <ul class="level-2"> <li class="item-a">A</li> <li class="item-b">B <ul class="level-3"> <li class="item-1">1</li> <li class="item-2">2</li> <li class="item-3">3</li> </ul> </li> <li class="item-c">C</li> </ul> </li> <li class="item-iii">III</li> </ul>
如果从项目A开始,我们可以找到它的有定位的祖先元素:
$( "li.item-a" ).offsetParent().css( "background-color", "red" );
这将改变列表项目II,它是一个有定位的元素。
示例
找出项目A的有定位的父元素。
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>offsetParent demo</title> <script src="https://code.jquery.com/jquery-1.10.2.js"></script> </head> <body> <ul class="level-1"> <li class="item-i">I</li> <li class="item-ii" style="position: relative;">II <ul class="level-2"> <li class="item-a">A</li> <li class="item-b">B <ul class="level-3"> <li class="item-1">1</li> <li class="item-2">2</li> <li class="item-3">3</li> </ul> </li> <li class="item-c">C</li> </ul> </li> <li class="item-iii">III</li> </ul> <script>$( "li.item-a" ).offsetParent().css( "background-color", "red" );</script> </body> </html>
演示结果