[js笔记整理]DOM 篇

一、节点类型

1.元素节点:HTML元素

2.文本节点:元素标签中的内容

3.属性节点:元素的属性

(检测节点类型:node.nodeType  //元素=1,属性=2,文本=3)

二、使用DOM获取元素

1.通过名称类型访问节点

(1)getElementById();

(2)getElementsByTagName();

2.利用父子关系查询节点

(1).ChildNodes //获取全部子节点数组(在Firefox chrome ie9中会包含文本节点)

(2).children //只选择标签节点的子元素

(3).parentNode  //父节点

(4).offsetNode  //绝对定位的父节点

(5).hasChildnNodes()  //判断是否有子节点 返回布尔值

(6).firstChild  //第一个子节点  (在Firefox chrome ie9中会包含文本节点)

(7).lastChild //最后一个子节点  (在Firefox chrome ie9中会包含文本节点)

3.利用兄弟关系访问节点

(1).nextSibling

(2).previousSibling

兼容性:在Firefox、chrome等浏览器中会包含文本节点(空节点)

(兼容处理nextSibing)

 1 function(node)
 2 {
 3     var tempLast=node.parentNode.lastChild;
 4     if(node==tempLast)
 5         return null;
 6     var tempObj=node.nextbiSing;
 7     while(tempObj.nodeType !=1 && tempObj!=tempLast)
 8         tempObj=tempObj.nextSibling;
 9     return (tempObj.nodeType==1)?tempObj;null;
10 }

三、获取节点属性

(1)gitAttribute(属性名);  //获取属性值

(2)setAttribute(属性名,属性值);  //设置属性值

(3)removeAttribute(属性名);  //删除属性值

四、创建和添加节点

1、创建节点

(1)createElement("标签名");

(2)createTextNode("文本内容");

(3)createDocumentTragment();

2、添加节点

appendChild(nodename);  //添加子节点//默认插入到末尾//动作删除创建位置,插入到新位置

3、删除节点

removeChild(nodename);  //找的父元素删除。。。。 x.parentNode.removeChild(x);

4、替换节点

replaceChild(newNode,oldNode);  //查找父元素替换。。。 x.parentNode.replaceChild(oNewP,oOldP);

5、在特定节点前插入

insertBefore(newNode,targetNode);  

6、在特定节点后插入

1 function insertAfter(newElement,targetElement)
2 {
3     if(oParent.lastChild==targetElement)
4         oParent.appendChild(newElement);
5     else
6         oParent.insertBefore(newElement,targetElement.nextSibling);
7 }
时间: 2024-12-28 08:13:02

[js笔记整理]DOM 篇的相关文章

[js笔记整理]正则篇

一.正则基本概念 1.一种规则.模式 2.强大的字符串匹配工具 3.在js中常与字符串函数配合使用 二.js正则写法 正则在js中以正则对象存在: (1)var re=new RegExp(正则表达式); (2)var re=/正则表达式/; 三.正则的基本写法 1.开始结束符 ^     $ 2.元字符 (1)任意字符 [abc] abc中的任意一个 (2)范围 [a-z] 字母a到c: [1-9] 数组1到9 (3)排除 [^a-z] 排除字母a-c (4)任意字符 . 3.量词 (1) {

[js笔记整理]面向对象篇

一.js面向对象基本概念 对象:内部封装.对外预留接口,一种通用的思想,面向对象分析: 1.特点 (1)抽象 (2)封装 (3)继承:多态继承.多重继承 2.对象组成 (1)属性: 任何对象都可以添加属性,(如右侧示例可弹出arr.a为12 var arr=[1,2,3];arr.a=12;alert(arr.a) 全局变量是window的属性, 1 <script> 2 window.a=12; 3 window.onload=function() 4 { 5 alert(a); 6 } 7

jqGrid 学习笔记整理——终极篇(一)

jqGrid 学习笔记整理--终极篇(一) 本篇开始实现利用jqGrid框架实现 主从表 的显示效果及与后台交互的实例,使用的平台和上篇博文[jqGrid 学习笔记整理--进阶篇(二)](http://blog.csdn.net/dfs4df5/article/details/51108798)一致 也将使用上篇中的数据库和代码进行添加和修改,如果未看上篇的请先去看上篇,本篇不再重复贴出上篇出现的源码. 一.数据库部分 为了检索方便,这里建立了一个视图 关联两个表,设置为外键 最后如果有什么不清

jqGrid 学习笔记整理——进阶篇(二)

jqGrid 学习笔记整理--进阶篇(二 ) 本篇开始正式与后台(java语言)进行数据交互,使用的平台为 JDK:java 1.8.0_71 myEclisp 2015 Stable 2.0 Apache Tomcat-8.0.30 Mysql 5.7 Navicat for mysql 11.2.5(mysql数据库管理工具) 一.数据库部分 1.创建数据库 使用Navicat for mysql创建数据库(使用其他工具或直接使用命令行暂不介绍) 2.创建表 双击打开上步创建数据库--右击T

JS原生系列-DOM篇(延伸)

关于DOM,这就是最后一部分了,这部分都是后台或者最新的dom api,学的时候需要多的记忆一次,有印象有保障! -.ajax的介绍:ajax输出json格式文件 jsonp的介绍 xhr2的介绍 http://www.w3school.com.cn/ajax/ajax_xmlhttprequest_create.asp -.cookie的介绍:设置cookie和删除cookie -.html5 存储的介绍:web客户端存储(localStorage sessionsStorage) 缓存( c

高性能JS笔记3——DOM编程

一.访问与修改DOM DOM和JS 相当于两个岛屿,访问操作的次数越多,要交的过路费越多,对性能产生很大影响. 减少访问DOM的次数,把运算尽量留在JS端操作. 二.innerHTML 对比 DOM 方法 1.对于原生的DOM方法和innerHTML比较,性能相差无几. 2.对于大量操作,针对不同浏览器,性能不一样,因此取决于经常用的浏览器. 3.建议从可读性.稳定性.编码习惯来决定使用哪种方式.在对字符串经过优化后,innerHTML性能可以得到大幅提升. 三.操作上的优化 1.节点克隆 例如

WEBGL实现--three.js笔记整理

three.js 三大对象:Scene  场景,PerspectiveCamera 相机 ,WebGLRenderer 渲染器 性能测试工具:stats.js 动画引擎实现:Tween.js 相机:{正投影:THREE.OrthographicCamera(left, right, top, bottom, near, far ):透视投影:THREE.PerspectiveCamera(fov, aspect, near, far)} fov:相机上下获取图像的角度:near:近截面距离:fa

Linux笔记整理——命令篇

一.列出目录内容 ls -a:显示所有文件(包括隐藏文件): ls -l:显示详细信息: ls -R:递归显示子目录结构: ls -ld:显示目录和链接信息: ctrl+r:历史记录中所搜命令(输入命令中的任意一个字符): Linux中以.开头的文件是隐藏文件: pwd:显示当前目录 二.查看文件的类型 file:查看文件的类型 三.复制文件目录 1.cp:复制文件和目录 cp源文件(文件夹)目标文件(文件夹) 常用参数:-r:递归复制整个目录树:-v:显示详细信息: 复制文件夹时要在cp命令后

用PHP代替JS玩转DOM

事情的起源比较简单,我需要把一个导航页的数据整理好写入数据库.一个比较直观的方法是对html文件进行分析,通用的方法是用php的正则表达式来匹配.但是这样做开发和维护都很困难,代码可读性非常差. 导航页的数据都是规则的排列在DOM树当中的,用JS可以用几个循环轻松的对其进行操作,而且JS需要依赖浏览器,操作数据库很困难.其实PHP就有现成的类库对DOM树种的节点进行增删改查操作,在此做一些笔记. 这里涉及到2个类 DOMDocument 和 DOMXPath. 其实思路比较明确,就是通过DOMD