parentElement 在msdn的解释是Retrieves the parent object in the object hierarchy.

而offsetParent在msdn的解释是Retrieves a reference to the container object that defines the offsetTop and offsetLeft properties of the object. 这个解释有些模糊。我们再来看看他的remarks

Most of the time the offsetParent property returns the body object.

大多说offsetParent返回body

Note  In Microsoft® Internet Explorer 5, the offsetParent property returns the TABLE object for the TD object; in Microsoft® Internet Explorer 4.0 it returns the TR object. You can use the parentElement property to retrieve the immediate container of the table cell.
 
对于IE 5.0以上,TD的offsetParent返回Table。

但是msdn并没有讨论在页面td元素中存在绝对/相对定位时offsetParent的值。

以下是我个人总结的规律

在td中的元素会把第一个绝对/相对定位的hierarchy parent当作offsetParent,如果没有找到需要分三种情况讨论

  一,如果该元素没有绝对/相对定位,则会把td当作offsetParent

  二,如果该元素绝对/相对定位并且table没有绝对/相对定位,则会把body当作offsetParent

  三,如果该元素绝对/相对定位并且table绝对/相对定位,则会把table当作offsetParent

看一下示例代码

1.<BODY >
<TABLE BORDER=1 ALIGN=right>
  <TR>
    <TD ID=oCell><div id="parentdiv" style="position:relative" >parentdiv<div id="sondiv">sondiv</div></div></TD>
  </TR>
</TABLE>

运行结果parentdiv.offsetParent.tagName IS "body"

sondiv.offsetParent.id     IS "parentdiv"

2.<BODY >
<TABLE BORDER=1 ALIGN=right>
  <TR>
    <TD ID=oCell><div id="parentdiv" style="position:relative" >parentdiv<div id="sondiv" style="position:relative">sondiv</div></div></TD>
  </TR>
</TABLE>

运行结果parentdiv.offsetParent.tagName IS "body"

sondiv.offsetParent.id     IS "parentdiv"

3.<BODY >
<TABLE BORDER=1 ALIGN=right>
  <TR>
    <TD ID=oCell><div id="parentdiv" >parentdiv<div id="sondiv" style="position:relative">sondiv</div></div></TD>
  </TR>
</TABLE>

运行结果parentdiv.offsetParent.tagName IS "TD"

sondiv.offsetParent.tagName    IS "body"

4.<BODY >
<TABLE BORDER=1 ALIGN=right>
  <TR>
    <TD ID=oCell><div id="parentdiv" >parentdiv<div id="sondiv">sondiv</div></div></TD>
  </TR>
</TABLE>

运行结果parentdiv.offsetParent.tagName IS "TD"

sondiv.offsetParent.tagName    IS "TD"

5.<BODY >
<TABLE BORDER=1 ALIGN=right style="position:relative">
  <TR>
    <TD ID=oCell><div id="parentdiv" style="position:relative" >parentdiv<div id="sondiv" style="position:relative">sondiv</div></div></TD>
  </TR>
</TABLE>

运行结果parentdiv.offsetParent.tagName IS "Table"

sondiv.offsetParent.tagName    IS "parentdiv"

offsetParent和parentElement的区别相关推荐

  1. [JavaScript][转]offsetParent和parentElement的区别

    作者:未知 来源于:网络转载 发布时间:2006-9-30 23:42:32 一直以为offsetParent和parentElement是一回事,最近在做web控件才发现原来的理解是大错特错.   ...

  2. js中parentNode和parentElement的区别和用法

    了解本篇的基础必须知道什么是节点,关于html dom节点知识点和节点类型的知识,分别看<js节点都有哪些类型?怎么判断是哪种节点类型?>和<js属性节点获取和移除>,下面直接 ...

  3. JS中parentNode和parentElement的区别

    参考文章 以一个网页作为例子: <!DOCTYPE html> <html><head><meta charset="UTF-8"> ...

  4. offsetParent与parentElement ,parentNode,parentElement,childNodes和children

    offsetParent直接的将是影响元素位置的上级element,而parentElement与位置显示无关时dom中的上级element. 例如:   <BODY>   <div ...

  5. offsetParent与parentElement

    offsetParent 指的是是影响元素位置的上级element,而parentElement则是与位置显示无关时dom中的上级element. 例如: <body><div st ...

  6. parentNode和parentElement的区别

    首先了解parentNode,parentElement属性之前,必须对DOM树有一定的了解.在DOM文档结构中,HTML页面每一部分都是由节点组成的,节点的类型一共有3种,元素节点,文本节点,属性节 ...

  7. parentElement 与 parentNode 的区别

    首先,您需要知道元素和节点之间的区别.总之,元素是一种特殊类型的节点,它表示 DOM 树中的单个节点.它不仅可以是元素,还可以是注释.文档.文本节点等. 在大多数情况下,parentElement 和 ...

  8. Javascript中parentElement和parentNode的区别

    parentNode和parentElement的区别 第一点:parentNode跟parentElement,前者是w3c标准,后者只ie支持. parentElement是ie专用的,就是说在f ...

  9. vb.net 打开ie 传参数_FF与IE对javascript和CSS的区别?

    1. document.formName.item("itemName") 问题 说明:IE下,可以使用document.formName.item("itemName& ...

最新文章

  1. Java基础(一)——基本语法
  2. Android开发技巧——PagerAdapter再简单的包
  3. 商务网站建设与维护【6】
  4. “大数据分析”和“数据分析”的区别与联系
  5. xp系统配置打印服务器,xp系统打印机纸张大小的自定义设置方法
  6. SSL协议与数字证书原理
  7. php cms 公文,POSCMS文件信息查看
  8. goinception审核规则
  9. 车机开发之添加自定义键
  10. 12092009小记
  11. 工商银行总行营业厅管理软件设置视频教程
  12. plsql无法连接linux下的oracle服务器,提示:ora-12541:TNS 无监听程序
  13. SDUT-2933-人活着系列之Streetlights (Kruskal)
  14. Apache ab 测试报告详解
  15. 水库安全监测自动化系统解决方案
  16. 诗经 - 小雅 - 菁菁者莪
  17. Android灯光系统背光灯
  18. 工程材料(2)铁碳相图
  19. 微信分享链接怎么自定义标题、描述和缩略图?
  20. 百度无线音乐盒刷打印服务器,百度无线音乐盒连接超时升级固件?用户手动升级说明及操作步骤方法...

热门文章

  1. 手机上安装FTP服务器,通过FTP实现计算机上用FTP客户端对手机文件的无线连接访问
  2. 怎样在Windows下挂载ESP分区
  3. List的contains()方法
  4. cad怎样转换成pdf格式?四个步骤完成
  5. 通俗易懂解释IP段192.168.1.0/24和192.168.0.0/16
  6. 抽象代数之第一群同构定理的证明
  7. 基于低代码开发平台实现的企业OA升级替换方案
  8. 《信息安全工程师教程》学习笔记01(第一章)
  9. VBA数据类型和类型转换函数
  10. Python 已知三角形的三条边,求面积