<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<title>Document</title>
</head> <body>
<ul id="ul1">
<li>0001</li>
<li>0002</li>
<li>0003</li>
<li>0004</li>
</ul>
<script>
window.onload = function() { var oUl = document.getElementById('ul1'); /**
获取第一个子元素 obj.firstChild
标准浏览器下会取到文本节点
非标准浏览器下只会取到元素节点 obj.firstElementChild
标准浏览器下只会取到元素节点
非标准浏览器不认识该属性 兼容代码
if(obj.firstElementChild){
obj.firstElementChild.style.background='red';
}else{
obj.firstChild.style.background='red';
} var oFirst = obj.firstElementChild || obj.firstChild;
if( oFirst ){
oFirst.style.background = 'red';
} 以上兼容代码都有BUG so 使用一下代码查找第一个子obj
obj.children[0].style.background = 'red';
*/ var oFirst = oUl.children[0];
if (oFirst) {
oFirst.style.background = 'red';
} /**
获取最后一个子元素 obj.lastChild
标准浏览器下会取到文本节点
非标准浏览器下只会取到元素节点 obj.lastElementChild
标准浏览器下只会取到元素节点
非标准浏览器不认识该属性 var oLast = obj.lastElementChild || obj.lastChild;
if( oLast ){
oLast.style.background = '#abcdef';
} */ var oLast = oUl.children[oUl.children.length-1];
if (oLast) {
oLast.style.background = '#abcdef'
} /**
获取上一个兄弟节点 obj.previousSibling
标准浏览器下会取到文本节点
非标准浏览器下只会取到元素节点 obj.previousElementSibling
标准浏览器下只会取到元素节点
非标准浏览器不认识该属性 var oPrevious = obj.previousElementSibling || obj.previousSibling;
if( oPrevious ){
oPrevious.style.background = 'yellow';
} */ var oPrevious = oLast.previousElementSibling || oLast.previousSibling;
if (oPrevious) {
oPrevious.style.background = 'yellow';
} /**
获取下一个兄弟节点 nextSibling
标准浏览器可以获取文本节点
非标准浏览器只能获取元素节点 nextElementSibling
标准浏览器只能获取元素节点
非标准浏览器不支持该属性 var oNext = oFirst.nextElementSibling || oFirst.nextSibling;
if( oNext ){
oNext.style.background = 'pink';
} */ var oNext = oFirst.nextElementSibling || oFirst.nextSibling;
if (oNext) {
oNext.style.background = 'pink';
} };
</script>
</body> </html>

firstChild,lastChild,nextSibling,previousSibling & 兼容性写法的更多相关文章

  1. 兼容的firstChild,lastChild,nextSibling,previousSibling写法

    在IE下是支持firstChild,lastChild,nextSibling,previousSibling 但是在FF下,由于它会把标签之间的空格当成文本节点,所以为了准确地找到相应的元素,会用 ...

  2. HTML DOM firstChild lastChild nextSibling previousSibling 属性_获取属性值的undefined问题

    <html> <head> <title>HTML示例</title> <style type="text/css"> ...

  3. 常用原生JS方法总结(兼容性写法)

    经常会用到原生JS来写前端...但是原生JS的一些方法在适应各个浏览器的时候写法有的也不怎么一样的... 今天下班有点累... 就来总结一下简单的东西吧…… 备注:一下的方法都是包裹在一个EventU ...

  4. css各浏览器的兼容性写法

    各浏览器下的兼容性写法 老版Chrome     -webkit-xxx FF                  -moz-xxx IE9                 -ms-xxx opera ...

  5. 常用原生JS兼容性写法汇总

    1.添加事件方法 addHandler:function(element,type,handler){ if(element.addEventListener){//检测是否为DOM2级方法 elem ...

  6. Javascript selection的兼容性写法介绍

    本文为大家讲解下Javascript selection的兼容性写法,感兴趣的朋友可以参考下 function getSelectedText() { //this function code is ...

  7. JavaScript数组方法的兼容性写法 汇总:indexOf()、forEach()、map()、filter()、some()、every()

    ECMA Script5中数组方法如indexOf().forEach().map().filter().some()并不支持IE6-8,但是国内依然有一大部分用户使用IE6-8,而以上数组方法又确实 ...

  8. CSS- ie6,ie7,ie8 兼容性写法,CSS hack写法

    css ie6,ie7,ie8 兼容性写法,CSS hack写法 margin-bottom:40px;       /*ff的属性*/margin-bottom:140px\9;    /* IE6 ...

  9. javascript解决getElementById()的bug以及getElementsByClassName的兼容性写法

    <a name="target" href="#">链接</a> <p id="target">文字说明 ...

随机推荐

  1. jquery-ul-li实现分页功能 转载仅供交流

    js文件代码: (function($){ $.fn.Pages = function(options){ var opts = $.extend({},$.fn.Pages.defaults, op ...

  2. STM32学习笔记(一)——点亮一个LED

    引言 最近报名了2017全国大学生电子设计竞赛,我们学校是第一次参加这个比赛,由于8/9月份就要比赛了,所以现在准备是比较晚的了,指导老师说只能做控制类的题目了,让我们学习一下STM32单片机,51到 ...

  3. Jquery一些实用函数

    1.jQuery.parseJSON( json )第一个参数json的类型是字符串: var obj = jQuery.parseJSON( '{ "name": "J ...

  4. Asp .Net MVC4笔记之目录结构

    认识MVC从目录结构开始,从基本创建开始. App_Data 文件夹:App_Data 文件夹用于存储应用程序数据. App_Start:启动文件的配置信息,包括很重要的RouteConfig路由注册 ...

  5. js创建xml对象

    js创建xml对象 //创建对象 function getDataXML() {     var objTds = $("TEXTAREA");     var count = o ...

  6. MySQL最常用日期时间函数

    日期和时间函数 可能的需求: 当前时间是多少.下个月的今天是星期几.统计截止到当前日期前 3 天的收入总和-- 上述需求就需要使用日期和时间函数来实现: MySQL服务器中的三种时区设置: ①系统时区 ...

  7. 【转】JDBC学习笔记(3)——复习和练习

    转自:http://www.cnblogs.com/ysw-go/ 复习部分 一.获取数据库连接 1)方式一 1 // 获取数据库连接 2 @Test 3 public void testGetCon ...

  8. bootstrap快速入门笔记(八)-按钮,响应式图片

    一,默认样式:.btn-default , .btn-primary , .btn-success  ,.btn-info, btn-warning ,btn-link 二,尺寸:.btn-lg, . ...

  9. 消息队列NetMQ 原理分析3-命令产生/处理和回收线程

    消息队列NetMQ 原理分析3-命令产生/处理和回收线程 前言 介绍 目的 命令 命令结构 命令产生 命令处理 创建Socket(SocketBase) 创建连接 创建绑定 回收线程 释放Socket ...

  10. Android Material Design--TextInputLayout

    TextInputLayout 1. 简介 官网开篇: Layout which wraps an EditText (or descendant) to show a floating label ...