AS : ECMAScript 

xml 、 html 

js组成: 

1,ECMAScript : 是Javascript的核心标准、同时也是一个解释器。 

2,DOM: document object model 文档对象模型 

html dom / xml dom 

document.getElementById(); 

document.getElementsByTagName(); 

oDiv.getElementsTagName(); 

oDiv.style.width 

oDiv.innerHTML 

getComputedStyle() / obj.currentStyle 

dom 是关于如何创建、添加、修改或者删除页面元素的标准。 

所以与页面相关的操作都属于 dom 操作。 

3,BOM : browser object model 浏览器对象模型 

到目前还没有一个实质性的标准规范。

dom节点是dom中最基本的组成单元。

层级方式划分 : 父节点 、 子节点 、 兄弟节点

类型方式划分 :元素节点、属性节点、文本节点、注释节点、document节点

层级方式划分 : 父节点 、 子节点 、 兄弟节点

父子节点是上下两层节点之间的关系。

当前节点上面的所有节点都统称为 祖先节点。

当前节点下面的所有节点都统称为 子孙节点。

childNodes : 子节点。 有兼容问题 标准属性

标准浏览器下:会把代码中的换行符解析成空白文本节点。

children : 子节点 非标准属性

不会把换行符解析成空白文本节点

 

查看变量类型 : typeof 运算符

类型方式划分 :元素节点、属性节点、文本节点、注释节点、document节点

查看节点类型: nodeType 属性

查看节点名称 : nodeName 属性

查看节点的值: nodeValue 属性

nodeType : 1 2 3 8 9

1 元素节点

2 属性节点

3 文本节点

8 注释节点

9 document节点

温馨提示:标签嵌套应该遵循规则。

----------------------------------------------------------------------------------------

firstChild : 第一个子节点 在标准和ie9下会获取到空白文本节点。

firstElementChild : 标准下获取第一个子元素节点,ie6/7/8不支持。

lastChild : 最后一个子节点 在标准和ie9下会获取到空白文本节点。

lastElementChild : 标准下获取最后一个子元素节点,ie6/7/8不支持。

nextSibling:下一个兄弟节点 在标准和ie9下会获取到空白文本节点。

nextElementSibling:标准下获取下一个兄弟节点,ie6/7/8不支持。

previousSibling:上一个兄弟节点 在标准和ie9下会获取到空白文本节点。

previousElementSibling:标准下获取上一个兄弟节点,ie6/7/8不支持。

 1. parentNode : 当前节点的上一层节点(父节点)。

 

 

---------------------------------------------------------------------------------------

封装函数

function getPrev( obj ){

if( !obj || !obj.previousSibling ) return null;

//先处理参数为假或者兄弟节点不存在的情况。

return obj.previousSibling.nodeType === 1 ? obj.previousSibling : getPrev( obj.previousSibling );

}

function getNext( obj ){

if( !obj || !obj.nextSibling ) return null;

//先处理参数为假或者兄弟节点不存在的情况。

return obj.nextSibling.nodeType === 1 ? obj.nextSibling : getNext( obj.nextSibling );

}

function getFirst( obj ){

if( !obj || !obj.firstChild ) return null;

return obj.firstChild.nodeType === 1 ? obj.firstChild : getNext( obj.firstChild );

}

function getLast( obj ){

if( !obj || !obj.lastChild ) return null;

return obj.lastChild.nodeType === 1 ? obj.lastChild : getPrev( obj.lastChild );

}

dom 兼容性问题1_节点部分的更多相关文章

  1. html5中的dom中的各种节点的层次关系是怎样的

    html5中的dom中的各种节点的层次关系是怎样的 一.总结 一句话总结:Node节点是所有节点的基类,所以都继承它的方法 1.dom提供在js中动态修改html标签的作用 比如增加修改标签等,并且是 ...

  2. 第10章 文档对象模型DOM 10.1 Node节点类型

    DOM是针对 HTML 和 XML 文档的一个 API(应用程序编程接口) .DOM描绘了一个层次化的节点树,允许开发人员添加.移除和修改页面的某一部分.DOM 脱胎于Netscape 及微软公司创始 ...

  3. JavaScript HTML DOM 元素操作(节点)

      在文档对象模型 (DOM) 中,每个节点都是一个对象.DOM 节点有三个重要的属性 : 1. nodeName : 节点的名称 2. nodeValue :节点的值 3. nodeType :节点 ...

  4. Javascript高级编程学习笔记(35)—— DOM(1)节点

    DOM JS由三部分组成 1.BOM 2.DOM 3.ECMAScript ES和BOM在前面的文章已经介绍过了 今天开始JS组成的最后一部分DOM(文档对象模型) 我们知道,JS中的这三个部分实际上 ...

  5. DOM基础+domReady+元素节点类型判断

    DOM节点类型  nodeType element  1    Node.ELEMENT_NODE   元素节点 attr  2   Node.ATTRIBUTE_NODE  属性节点 text  3 ...

  6. dom 无法找到 body节点问题

    最近在学习html dom节点知识时候,对照代码自己敲了一边,始终获取不到文档中的body对象,代码如下(未修改前): <!doctype html> <html> <h ...

  7. jQuery-1.9.1源码分析系列(十一) DOM操作续——克隆节点

    什么情况下使用到克隆节点? 我们知道在对DOM操作过程中如果直接使用节点会出现节点随操作而变动的情况.比如对节点使用.after/.before/.append等方法后,节点被添加到新的地方,原来的位 ...

  8. DOM创建和删除节点、HTML DOM常用对象[转]

    创建和删除节点:——核心DOM   1. 创建单个元素节点:3步:      1. 创建空元素节点对象:         var elem=document.createElement("标 ...

  9. React虚拟DOM具体实现——利用节点json描述还原dom结构

    前两天,帮朋友解决一个问题: ajax请求得到的数据,是一个对象数组,每个对象中,具有三个属性,parentId,id,name,然后根据这个数据生成对应的结构. 刚好最近在看React,并且了解到其 ...

随机推荐

  1. 段合并 segments merge 被删除的文档的删除时间

    2.5 段合并 每个索引分为多个“写一次,读多次”的段 write once and read many times  segments 建立索引时,一个段写入磁盘以后就不能更新:被删除的文档的信息存 ...

  2. 【转】Mysql之binlog日志说明及利用binlog日志恢复数据操作记录

    众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 废 ...

  3. opencv如何打印长图?

    cv::Mat longMap(std::vector<cv::Mat> &set) { int matNumber = set.size(); int width = set[0 ...

  4. Python3.6全栈开发实例[023]

    23.税务部门征收所得税. 规定如下: (1)收入在2000以下的. 免征. (2)收入在2000-4000的, 超过2000部分要征收3%的税. (3)收入在4000-6000的, 超过4000部分 ...

  5. 教你管理SQL实例系列(1-15)

    全系列转自:51CTO ->jimshu http://jimshu.blog.51cto.com 目录及原本连接如下: 教你管理SQL实例(1)数据库实例 教你管理SQL实例(2)服务启动帐户 ...

  6. Android开发视频教程

    http://study.163.com/course/courseMain.htm?courseId=207001 目录   章节1第一季   课时1课程介绍15:17 课时2Android历史15 ...

  7. Percona备份mysql全库及指定数据库(完整备份与增量备份)

    Percona Xtrabackup备份mysql全库及指定数据库(完整备份与增量备份) Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对I ...

  8. payload有效载荷(转)

    payload 记载着信息的那部分数据.通常在传输数据时,为了使数据传输更可靠,要把原始数据分批传输,并且在每一批数据的头和尾都加上一定的辅助信息,比如这一批数据量的大小,校验位等,这样就相当于给已经 ...

  9. Loadrunder脚本篇——Run-time Settings之Browser Enmulation

    浏览器模拟 所有Internet Vuser Header包含一个标识将被模拟的浏览器类型(或无线工具包)的User Agent header.例如User-Agent: Mozilla/3.01Go ...

  10. Loadrunder之脚本篇——关联函数对话框详解

    Insert->New Step,打开Add Step对话框 选择函数web_reg_save_param,点击OK,打开关联函数设置窗口 说明: Parameter Name 此处设置存放参数 ...