• 相同点: 都是获取父元素下的第一个节点对象

  • 不同点:

  • firstChild: IE6、7、8 第一个元素节点; 非IE6、7、8:返回第一个元素节点或文本节点

  • firstElementChild: IE6、7、8不支持;非IE6、7、8,获取第一个元素节点

<script type="text/javascript">
/**
* @description: 获取父元素的第一个节点
* @param ele: 传入一个DOM元素
* */
function firstChild(ele) {
if(ele.nodeType) { // 存在nodeType属性,传进来的就是DOM元素
if(ele.firstElementChild) { // 非IE
return ele.firstElementChild;
}
return ele.firstChild; // IE
} else {
throw new Error("您传入的参数不是DOM元素!!!");
}
} window.onload = function() {
var box = document.getElementById("box"); console.log(firstChild(box));// 不管什么浏览器永远返回1--也就是第一个元素节点,而非文本节点
console.log(box.firstChild.nodeType);// chrome下返回3
}
</script>
<body>
<div id="box"> q
<span>1</span>
<span>2</span>
<a href="">3</a>
</div>
</body>

lastChild与lastElementChild

  相同点:获取父节点下的最后一个节点对象;

  不同点:1、lastchild:IE6,7,8:最后一个元素节点;

             非IE6,7,8:最后一个节点,文本节点或者元素节点;

      2、lastElementChild:IE6,7,8:不支持;

             非IE6,7,8:最后一个元素节点

nextSibling与nextElementChild

    - 相同点:获取后一个兄弟节点对象;

  - 不同点:1、nextSibling:IE6,7,8:后一个兄弟元素节点;

             非IE6,7,8:后一个兄弟节点,文本节点或者元素节点;

      2、lastElementChild:IE6,7,8:不支持;

                  非IE6,7,8:后一个兄弟元素节点;

previousSibling与previousElementChild

  - 相同点:获取前一个兄弟节点对象;

  -不同点:1、previousSibling:IE6,7,8:前一个兄弟元素节点;

             非IE6,7,8:前一个兄弟节点,文本节点或者元素节点;

      2、previousElementChild:IE6,7,8:不支持;

             非IE6,7,8:前一个兄弟元素节点;

parentNode:获取父元素,不存在兼容性问题。

  • offsetParent:获取第一个设置定位的父元素;
  • offsetLeft:获取离第一个定位父元素的左距离;

    -offsetTop:获取离第一个定位父元素的上距离;

firstChild与firstElementChild的更多相关文章

  1. 兼容firstChild和firstElementChild

    1.nextSibling和nextElementSibling 顾名思义,就是找下一个节点 nextSibling在低版本浏览器中可以顺利找到下一个元素节点,而在正常浏览器中找到的包含中间空格. n ...

  2. 05.DOM

    DOM基础 什么是DOM 标签元素节点浏览器支持情况  火狐支持最好 谷歌其次 ie最差 尤其是ie6-8DOM节点节点分为:元素节点和文本节点 测试节点的类型用nodeTypenodeType 为3 ...

  3. js DOM Element属性和方法整理

    节点操作,属性 1. childNodes.children 这两个属性获取到的子节点会根据浏览器的不同而不同的,所以一定要判断下nodeType是否为1. childNodes获取到的是NodeLi ...

  4. Dom初

    DOM基础 •什么是DOM •浏览器支持情况 lDOM节点 •childNodes  nodeType –获取子节点 <!DOCTYPE html PUBLIC "-//W3C//DT ...

  5. util.js

    轻量基础库.方法库 用时可直接拷贝 拆卸式使用 适用于mobile端简单页面 适用于PC简单页面 基于node.php等多种构建方法 (function(M){ /** * 初始化Ajax请求 * @ ...

  6. DOM兼容

    -firstChild  firstElementChild var oFirst = oUl.firstChild || oUl.firstElementChild; -lastChild   la ...

  7. DOM节点关系,节点关系

    DOM节点关系 定义 节点中的各种关系可以用传统的家族关系来描述,相当于把文档树比喻成家谱. 属性 [nodeType.nodeName.nodeValue] 每个节点都有这三个属性,且节点类型不同, ...

  8. DOM应用

    父级.removeChild(子节点);父级.appendChild(子节点);父级.insertBefore(子节点, 在谁之前); 创建元素: <script> window.onlo ...

  9. DOM基础之“寻找”子节点

    今天学习了JS中的DOM的内容,虽然小菜的理解不深,但希望能够记录下来,慢慢一点一点的进步,有更深的理解了,再回来补充. 首先,关于DOM的概念: 1.概念:DOM = document(文档)Obj ...

随机推荐

  1. mysql Seconds_Behind_Master

    通过show slave status查看到的Seconds_Behind_Master,从字面上来看,他是slave落后master的秒数,一般情况下,也确实这样,通过Seconds_Behind_ ...

  2. 2 Selenium3.0+Python3.6环境搭建

    [说明] 再次搭建一次环境,是因为遇到怎么都打不开IE的问题了,环境信息为:Selenium3.0+Python3.6+win7+ie10 [搭建步骤] 1.下载Python3.6,并点击安装和配置环 ...

  3. 05--C语言运算符优先级和ASCII码表

  4. 解决linux 升级高版本python3.7后yum不能使用的问题

    我们linux系统一般自带python2.7 版本,但是最近项目需求必须要上python3以上,对于用惯了python2的我来说,只能硬着头皮上了.下面是我的解决办法 which yum => ...

  5. JavaScript 原型 原型链

    一. 普通对象与函数对象 JavaScript 中,万物皆对象!但对象也是有区别的.分为普通对象和函数对象,Object .Function 是 JS 自带的函数对象.下面举例说明 var o1 = ...

  6. Project Euler 2 Even Fibonacci numbers

    题意:斐波那契数列中的每一项都是前两项的和.由1和2开始生成的斐波那契数列前10项为:1, 2, 3, 5, 8, 13, 21, 34, 55, 89, -考虑该斐波那契数列中不超过四百万的项,求其 ...

  7. 分布式深度学习之DC-ASGD

    本篇笔记是听刘铁岩老师做Distributed Deep Learning:New Driving Force of Artificial Intelligence报告整理而成 深度学习梯度下降公式如 ...

  8. Centos7 下安装 Docker

    一.简介 Docker是一个开源的应用容器引擎:是一个轻量级容器技术:Docker支持将软件编译成一个镜像:然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像:运行中的这个镜 ...

  9. 简洁又快速地处理集合——Java8 Stream(上)

    Java 8 发布至今也已经好几年过去,如今 Java 也已经向 11 迈去,但是 Java 8 作出的改变可以说是革命性的,影响足够深远,学习 Java 8 应该是 Java 开发者的必修课. 今天 ...

  10. 基于【SpringBoot】的微服务【Jenkins】自动化部署

    最近,也是抽空整理了一些在工作中积累的经验,通过博客记录下来分享给大家,希望能对大家有所帮助: 一.关于自动化部署 关于自动化部署的优点,我就不在这里赘述了:只要想想手工打包.上传.部署.重启的种种, ...