js DOM模型操作


Posted in Javascript onDecember 28, 2009

DOM模型中的节点:元素节点、文本节点、属性节点
例:<a href=”http://www.cnblogs.com/shuz”>私のdotnet小屋</a>
(1)a是元素节点
(2)“私のdotnet小屋”是文本节点
(3)href=”http://www.cnblogs.com/shuz”是属性节点
DOM节点的属性

属性 类型 说明
nodeName String 节点名称,根据节点的类型而定义
nodeValue String 节点的值,根据节点的类型而定义
nodeType Number 节点类型,1为元素节点,2为属性节点,3为文本节点
firstChild Node 指向childNodes列表的第一个节点
lastChild Node 指向childNodes列表的最后一个节点
childNodes NodeList 所有子节点列表,childNodes[i]可以访问第i+1个节点
parentNode Node 指向节点的父节点,如果已是根节点,则返回null
previousSibling Node 指向前一个兄弟节点,如果已是第一个节点,则返回null
nextSibling Node 指向后一个兄弟节点,如果已是最后一个节点,返回null
Attributes NameNodeMap 包含一个元素特性的Attr对象,仅用于元素节点
className String 节点的CSS类
innerHTML String 某个标记之间的所有内容,包括代码本身
DOM节点的方法
(1)访问节点:
【通过标签名】
document.getElementsByTagName(sTagName)方法:返回一个包含某个相同标签名的元素节点列表
【通过标签ID】
document.getElementById(sElementId)方法:返回Id为指定值的元素节点
【访问前一个节点】兼容IE和FireFox
(自定义)
function prevSib(oNode){ 
var oTempFirstNode=oNode.parentNode.firstChild; 
//判断是否是第一个节点,如果是则返回null 
if(oNode==oTempFirstNode) 
return null; 
var oTempNode=oNode.previousSibling; 
//逐一搜索前面的兄弟节点,直到发现元素节点为止 
while(oTempNode.nodeType!=1 && oTempNode.previousSibling!=null) 
oTempNode=oTempNode.previousSibling; 
//三目运算符,如果是元素节点则返回节点本身,否则返回null 
return (oTempNode.nodeType==1)?:oTempNode:null; 
}

【访问后一个节点】兼容IE和FireFox
(自定义)
function nextSib(oNode){ 
var oTempLastNode=oNode.parentNode.lastChild; 
//判断是否是最后一个节点,如果是则返回null 
if(oNode==oTempLastNode) 
return null; 
var oTempNode=oNode.nextSibling; 
//逐一搜索后面的兄弟节点,直到发现元素节点为止 
while(oTempNode.nodeType!=1 && oTempNode.nextSibling!=null) 
oTempNode=oTempNode.nextSibling; 
//三目运算符,如果是元素节点则返回节点本身,否则返回null 
return(oTempNode.nodeType==1)?oTempNode:null; 
}

(2)判断一个节点是否有子节点:
NodeObject.hasChildNodes()方法:当childNodes包含一个或多个节点时,返回true
(3)设置节点属性:
eleNode.getAttribute(attrNode)方法:返回eleNode元素的attrNode属性
eleNode.setAttribute(attrNode,sNewValue)方法:设置eleNode元素的attrNode属性的值为sNewValue
(4)创建节点:
document.createElement(eleNode)方法:创建一个元素节点eleNode
document.createTextNode(textNode)方法:创建一个文本节点textNode
document.createDocumentFragment()方法:创建文档碎片节点
(5)添加节点:
eleNode.appendChild(textNode)方法:将textNode节点添加到childNodes的末尾
(6)删除节点:
oNode.parentNode.removeChild(oNode)方法:从childNodes中删除oNode节点
(7)替换节点:
oNode.parentNode.replaceChild(oNewNode,oOldNode)方法:将childNodes中的oOldNode节点替换成oNewNode节点
(8)在特定节点前插入节点:
oTargetNode.parentNode.insertBefore(oNewNode,oTargetNode)方法:在childNodes中的oTargetNode节点之前插入oNewNode节点
(9)在特定节点后插入节点:
(自定义)oTargetNode.parentNode.insertAfter(oNewNode,oTargetNode)方法:在childNodes中的oTargetNode节点之后插入oNewNode节点
function insertAfter(oNewNode,oTargetNode){ 
var oParentNode=oTargetNode.parentNode; 
if(oParentNode.lastChild==oTargetNode) 
oParentNode.appendChild(oNewNode); 
else 
oParentNode.insertBefore(oNewNode,oTargetNode.nextSibling); 
}
Javascript 相关文章推荐
brook javascript框架介绍
Oct 10 Javascript
JQuery 图片的展开和伸缩实例讲解
Apr 18 Javascript
HTTP 304错误的详细讲解
Nov 13 Javascript
JS获取IP、MAC和主机名的五种方法
Nov 14 Javascript
简单的代码实现jquery定时器
Jan 03 Javascript
javascript使用正则表达式实现去掉空格之后的字符
Feb 15 Javascript
跟我学习javascript的执行上下文
Nov 18 Javascript
javascript滚轮控制模拟滚动条
Oct 19 Javascript
微信小程序 POST请求(网络请求)详解及实例代码
Nov 16 Javascript
angular2 NgModel模块的具体使用方法
Apr 10 Javascript
原生JavaScript实现刮刮乐
Sep 29 Javascript
jQuery实现影院选座订座效果
Apr 13 jQuery
滚动条变色 隐藏滚动条与双击网页自动滚屏显示代码
Dec 28 #Javascript
javascript iframe编程相关代码
Dec 28 #Javascript
通过javascript设置css属性的代码
Dec 28 #Javascript
JavaScript的public、private和privileged模式
Dec 28 #Javascript
Javascript 面向对象特性
Dec 28 #Javascript
extJs 常用到的增,删,改,查操作代码
Dec 28 #Javascript
firefox和IE系列的相关区别整理 以备后用
Dec 28 #Javascript
You might like
对text数据类型不支持代码页转换 从: 1252 到: 936
2011/04/23 PHP
PHP使用Mysql事务实例解析
2014/09/08 PHP
php求数组全排列,元素所有组合的方法总结
2017/03/14 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
PHP中的访问修饰符简单比较
2019/02/02 PHP
PHP __call()方法实现委托示例
2019/05/20 PHP
PHP与Web页面的交互示例详解二
2020/08/04 PHP
PHP的垃圾回收机制代码实例讲解
2021/02/27 PHP
Javascript 加载和执行-性能提高篇
2012/12/28 Javascript
js实现在网页上简单显示时间的方法
2015/03/02 Javascript
全面详细的jQuery常见开发技巧手册
2016/02/21 Javascript
Bootstrap表单布局样式源代码
2016/07/04 Javascript
微信小程序之小豆瓣图书实例
2016/11/30 Javascript
js实现本地图片文件拖拽效果
2017/07/18 Javascript
jQuery实现基本隐藏与显示效果的方法详解
2018/09/05 jQuery
详解JavaScript匿名函数和闭包
2020/07/10 Javascript
[43:48]Ti4正赛第一天 VG vs NEWBEE 2
2014/07/19 DOTA
Python检测一个对象是否为字符串类的方法
2015/05/21 Python
Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例
2018/07/19 Python
Python3模拟登录操作实例分析
2019/03/12 Python
Python插入Elasticsearch操作方法解析
2020/01/19 Python
Pycharm中如何关掉python console
2020/10/27 Python
美国领先的医疗警报服务:Philips Lifeline
2018/03/12 全球购物
商务英语专业应届毕业生求职信
2013/10/28 职场文书
仓库管理专业个人自我评价范文
2013/11/11 职场文书
前台接待岗位职责
2013/12/03 职场文书
教师业务学习制度
2014/01/25 职场文书
幼儿园教师奖惩制度
2014/02/01 职场文书
超市开学活动方案
2014/03/01 职场文书
产品发布会策划方案
2014/05/12 职场文书
2014年国庆节广播稿
2014/09/19 职场文书
县人大领导班子四风对照检查材料思想汇报
2014/10/09 职场文书
学生旷课检讨书500字
2014/10/28 职场文书
如何在向量化NumPy数组上进行移动窗口
2021/05/18 Python
mysql联合索引的使用规则
2021/06/23 MySQL
Redis 彻底禁用RDB持久化操作
2021/07/09 Redis