dom 兼容性问题1_节点部分
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_节点部分的更多相关文章
- html5中的dom中的各种节点的层次关系是怎样的
html5中的dom中的各种节点的层次关系是怎样的 一.总结 一句话总结:Node节点是所有节点的基类,所以都继承它的方法 1.dom提供在js中动态修改html标签的作用 比如增加修改标签等,并且是 ...
- 第10章 文档对象模型DOM 10.1 Node节点类型
DOM是针对 HTML 和 XML 文档的一个 API(应用程序编程接口) .DOM描绘了一个层次化的节点树,允许开发人员添加.移除和修改页面的某一部分.DOM 脱胎于Netscape 及微软公司创始 ...
- JavaScript HTML DOM 元素操作(节点)
在文档对象模型 (DOM) 中,每个节点都是一个对象.DOM 节点有三个重要的属性 : 1. nodeName : 节点的名称 2. nodeValue :节点的值 3. nodeType :节点 ...
- Javascript高级编程学习笔记(35)—— DOM(1)节点
DOM JS由三部分组成 1.BOM 2.DOM 3.ECMAScript ES和BOM在前面的文章已经介绍过了 今天开始JS组成的最后一部分DOM(文档对象模型) 我们知道,JS中的这三个部分实际上 ...
- DOM基础+domReady+元素节点类型判断
DOM节点类型 nodeType element 1 Node.ELEMENT_NODE 元素节点 attr 2 Node.ATTRIBUTE_NODE 属性节点 text 3 ...
- dom 无法找到 body节点问题
最近在学习html dom节点知识时候,对照代码自己敲了一边,始终获取不到文档中的body对象,代码如下(未修改前): <!doctype html> <html> <h ...
- jQuery-1.9.1源码分析系列(十一) DOM操作续——克隆节点
什么情况下使用到克隆节点? 我们知道在对DOM操作过程中如果直接使用节点会出现节点随操作而变动的情况.比如对节点使用.after/.before/.append等方法后,节点被添加到新的地方,原来的位 ...
- DOM创建和删除节点、HTML DOM常用对象[转]
创建和删除节点:——核心DOM 1. 创建单个元素节点:3步: 1. 创建空元素节点对象: var elem=document.createElement("标 ...
- React虚拟DOM具体实现——利用节点json描述还原dom结构
前两天,帮朋友解决一个问题: ajax请求得到的数据,是一个对象数组,每个对象中,具有三个属性,parentId,id,name,然后根据这个数据生成对应的结构. 刚好最近在看React,并且了解到其 ...
随机推荐
- ubuntu14.0 hadoop2.4.0 64位基于jdk1.7搭建
注意:hadoop有两种运行模式,安全模式和非安全模式.安装模式是以指定在健壮的,基于身份验证上运行的,本文无需运行在非安全模式下,可以直接使用root用户. 本文用户是基于root用户来运行的 一. ...
- entropy 压缩信息的熵更加高 实际上英文文本的熵大概只有4.7比特
https://en.wikipedia.org/wiki/Entropy_(information_theory) https://zh.wikipedia.org/wiki/熵(信息论) 熵的概念 ...
- Navigation
Makedown常用语法 1.常用标题 # 代表h1(一级标题) ## 代表h2(二级标题) ### 代表h3(三级标题) #### 代表h4(四级标题) ##### 代表h5(五级标题) ##### ...
- Nuxt使用高德地图
事先准备 注册账号并申请Key 1. 首先,注册开发者账号,成为高德开放平台开发者 2. 登陆之后,在进入「应用管理」 页面「创建新应用」 3. 为应用添加 Key,「服务平台」一项请选择「 Web ...
- 简述Python的深浅拷贝以及应用场景
深浅拷贝的原理 深浅拷贝用法来自copy模块. 导入模块:import copy 浅拷贝:copy.copy 深拷贝:copy.deepcopy 字面理解:浅拷贝指仅仅拷贝数据集合的第一层数据,深拷贝 ...
- LeetCode::Sort List 具体分析
Sort a linked list in O(n log n) time using constant space complexity. 这道题目非常简短的一句话.给链表排序,看到nlogn.我们 ...
- 脉冲神经网络及有监督学习算法Tempotron
接下来一段时间开启脉冲神经网络模型的探索之旅.脉冲神经网络有更强的生物学基础,尽可能地模拟生物神经元之间的连接和通信方式.其潜在能力较强,值得踏进一步探索. 构建脉冲神经网络模型,至少需要考虑三点:1 ...
- boost之智能指针
内存问题永远是c++中讨论的重要话题 1.c98 auto_ptr的实现,auto_ptr的特点是始终只保持一个指针指向对象,若经过赋值或者拷贝之后原指针失效 #include <iostrea ...
- djange数据库优化操作
一.all()命令分析 1.user_list = models.UserInfo.objects.all() #查询表一次可以得到该表的所有信息 注释:user_list.query可以查询到 ...
- Javascript 广告浮动效果在浏览器中间N秒后移动到右下角
Javascript 广告浮动效果在浏览器中间N秒后移动到右下角 闲着无聊做了一个,本人原创...就是这个页面的广告效果....怎么样???? 刚刚学习的javascript