对DOM操作的一些总结
一.DOM节点
分为三大类:
1.元素节点 :<html>、<body>、<p>等标签
2.文本节点 :标签内的文本。例如<p>这就是文本节点</p>,里面的“这就是文本节点”这段文字就是一个文本节点。
注:Chrome、opera等浏览器中,把节点与节点之中的空白符(即空格)也视为文本节点。如下面代码中ul标签有5个子节点,两个li元素,三个空白符
<ul> <!--空白-->
<li></li> <!--空白-->
<li></li> <!--空白-->
</ul>
3.属性节点 :标签的属性。如a标签中的href,img中的src,input中的type......
例:
<a href="http://www.baidu.com">hello</a>
a为元素节点,href="http://www.baidu.com"为属性节点,hello为文本节点。
二.DOM操作方法
例:
<div id="d">
<p><span>haha</span></p>
<a name="alink" id="aa">标签1</a>
<a name="alink2" id="aaa">标签2</a>
<input name="alink" />
</div>
二.元素获取方法
1.通过元素ID属性获取
var odiv=document.getElementById("d");
传入id属性的值,返回所获元素且所获元素唯一
2.通过元素标签的名称获取
var a=document.getElementsByTagName("aa");
注:(1)一个页面中可能存在不止一个该标签,所以返回的是一个数组(注意方法名中的‘s’),具有length属性,索引从0开始。
(2)数组中的顺序为文档中的顺序。
(3)则例子中的第一个a标签该这样表示:document.getElementsByTagName("aa")[0];
3.通过元素name属性的值获取
var input=document.getElementsByName("alink");
注:同上一个方法一样返回一个数组,具有length属性,索引从0开始,顺序为文档中的顺序。
三.创建节点方法
4.创建一个元素节点
var div=document.createElement("div");
传入所要创建的元素名,并返回所创元素对象。
5.创建一个文本节点
var txt=document.createTextNode("This is new text");
传入文本内容来创建,并返回该文本节点内容。
注:以下方法属性都要依附于某个指定节点进行调用
7.(为指定节点)创建一个属性节点和设置属性值
var a=doucument.getElementById("aa");
a.setAttribute("name","link");
var odiv=document.getElementById("d");
odiv.setAttribute("name","odiv");
注:(1)给元素节点现有的属性设定为指定的值
(2)若该属性不存在,则为此节点创建该新属性。
四.DOM节点属性
8.获取属性值
var a=document.getElement("aa");四
a.getAttribute("name");//=alink
传入属性名称,返回指定节点的属性值。
9.获取子节点
var odiv=document.getElementById("d");
var node=odiv.childNodes;
获取指定元素下的所有子节点的列表,返回一个数组,具有length属性。
10.获取第一个子节点
var firstnode=odiv.firstChild;//odiv.childNode[0]
获取指定元素的子节点列表中的第一个节点
11.获取最后一个子节点
var lastnode=odiv.lastchild;//odiv.childNode[odiv.childNode.length-1]
获取指定元素的子节点列表中的最后一个节点
12.获取父节点
var span=document.getElementsByTagName("span")[0];
var parent=span.parentNode;// P 父节点
var Parent=span.parentNode.parentNode;// DIV 祖节点
获取指定节点的父节点或祖节点(唯一)
13.获取兄弟节点
var a=document.getElementById("aa");
var next=a.nextSibling;// A 返回指定节点之后紧跟的节点
var pre=a.previousSibling;// P 返回指定节点之前紧跟的节点
若无此节点,则返回NULL
五.节点的插入与修改
14.在指定节点的子节点列表的最后一个节点之后添加一个新节点
object.aapendChild(newnode)
15.在指定节点的子节点列表中的某个节点之前插入一个新节点
object.insertBefore(newnode,node)
16.删除指定节点的子节点列表中的某个节点
object.removeChild(node)
注:(1)有返回值。若删除成功,返回该节点。若删除失败,则返回NULL。
(2)只是从DOM树中移除,还存在于内存中。若要完全删除,给返回值赋上null。
17.对指定节点的子节点列表的某个节点替换
object.replaceChild(newnode,oldnode)
注:有返回值。返回被替换节点对象(oldnode)的引用,但与该节点相关的属性内容都将被移除。
例:
//创建新元素节点
var newnode=document.createElement("p");
newnode.innerHTML="new p";
//创建新文本节点
var newtext=document.createTextNode("this is new text");
var odiv=document.getElementById("d");
var oldNode=document.getElementById("aa");
var oldnode1=document.getElementById("aaa");
//在列表最后插入新节点
odiv.appendChild(newtext);
//在列表某节点之前插入新节点
odiv.insertBefore(newnode,oldNode);
//替换列表中的某节点
odiv.replaceChild(newnode,oldnode1);
//删除列表中的某节点
odiv.removeChild(oldNode);
总结:
(1)方法属性名区分大小写;
(2)都有返回值,返回获取,被创建,被删除,被替换的节点对象;
(3)传入参数,除变量名外都要加引号
对DOM操作的一些总结的更多相关文章
- jQuery学习之路(2)-DOM操作
▓▓▓▓▓▓ 大致介绍 jQuery作为JavaScript库,继承并发扬了JavaScript对DOM对象操作的特性,使开发人员能方便的操作DOM对象. ▓▓▓▓▓▓ jQuery中的DOM操作 看 ...
- 从DOM操作看Vue&React的前端组件化,顺带补齐React的demo
前言 接上文:谈谈我对前端组件化中“组件”的理解,顺带写个Vue与React的demo 上次写完博客后,有朋友反应第一内容有点深,看着迷迷糊糊:第二是感觉没什么使用场景,太过业务化,还不如直接写Vue ...
- 摆脱DOM操作,从TodoMVC看angularJS
取代jQuery? 我很久之前便听说了angularJS的大名,之前的leader也经常感叹angularJS的设计如何如何精妙,可叹一直没有机会深入了解,国庆长假因为没钱出游,倒是可以对他做一个了解 ...
- 前端页面卡顿?或是DOM操作惹的祸,需优化代码
文档对象模型(DOM)是一个独立 于特定语言的应用程序接口.在浏览器中,DOM接口是以JavaScript语言实现的,通过JavaScript来操作浏览器页面中的元素,这使得 DOM成为了JavaSc ...
- webform(九)——JQuery基础(选择器、事件、DOM操作)
JQuery -- 一个js函数包 一.选择器 1.基本选择器 ①id选择器:# ②class选择器:. ③标签名选择:标签名 ④并列选择:用,隔开 ⑤后代选 ...
- HTML 学习笔记 JQuery(DOM 操作)
一般来说,DOM操作分为三个方面,即:DOM Core(核心), HTML_DOM 和 CSS_DOM. 1.DOM Core DOM Core 并不专属于JavaScript,任何一种支持DOM的程 ...
- dom操作导致超级卡顿。。。
var i=0;j=30;setinterval(function(){ document.getElementId(idname).style.top=j+'px'; i<3?i++:i=0; ...
- php中通过DOM操作XML
DOM文档在js里早就接触过,知道DOM不但可以操作html文档,还可以操作XHTML,XML等文档,有着极强的通用性,下面我们通过两个小例子,看看在PHP中是如何用DOM操作XML文档的,和js中差 ...
- jQuery的DOM操作详解
DOM(Document Object Model-文档对象模型):一种与浏览器, 平台, 语言无关的规则, 使用该接口可以轻松地访问页面中所有的标准组件DOM操作的分类 核心-DOM: DOM Co ...
- [译]AngularJS中DOM操作
再翻译一篇干货短文,原文:AngularJS jQuery 虽然Angularjs将我们从DOM的操作中解放出来了,但是很多时候我们还是会需要在controller/view加载之后执行一些DOM操作 ...
随机推荐
- Thinkphp手把手练习
一.搭建thinkphp开发环境 准备条件:thinkphp框架 1.在Apache的www目录下新建文件夹,命名为thinkphp,可以将THinkPHP框架放在该目录中. 2.在thinkphp目 ...
- 关于MVC模型的NSNotification用法
对于iOS开发开发者, Model View Controller 模型能帮你快速理清开发思路,最近在使用Model给Controller传递数据时候了解了关于 NSNotification的一些用法 ...
- 基础线程机制--Daemon,sleep(),yield()
Daemon 守护线程是程序运行时在后台提供服务的线程,不属于程序中不可或缺的部分,当所有非守护进程执行完成时,程序也就终止,同时会杀死所有的守护进程.main()属于非守护线程.可以使用setD ...
- Maven入门(二)pom.xml和核心概念
一.pom.xml文件说明 1.pom意思就是project object model. 2.pom.xml包含了项目构建的信息,包括项目的信息.项目的依赖等. 3.pom.xml文件是可以继承的,大 ...
- SwiftMailer 发送邮件时 提示fsockopen() 被禁用
站点转移空间,发送邮件的SwiftMailer 类提示错误如下: Warning: fsockopen() has been disabled for security reasons in D:\1 ...
- Mybatis学习笔记(五) —— Mapper.xml(输入映射和输出映射)
一.parameterType(输入类型) 1.1 传递简单类型 <!-- 根据用户id查询用户 --> <select id="queryUserById" p ...
- hdu2553 N皇后问题(dfs+回溯)
N皇后问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- day_05 字典
1. 字典 1.成对保存数据 ,以key:value形式保存 2.以{}表示,每项内容都是key:value,元素之间用逗号隔开 3.key是不可重复的 4.字典以hash算法来计算key的hash值 ...
- Go语言基础之6--map(字典)数据类型
一.map数据类型 1.1 声明和定义 map类型是一个key-value的数据结构,又叫字典.(map也是可以扩容的,内部自动扩容) 声明: var map1 map[keytype]valuety ...
- 单元测试mock框架——jmockit实战
JMockit是google code上面的一个java单元测试mock项目,她很方便地让你对单元测试中的final类,静态方法,构造方法进行mock,功能强大.项目地址在:http://jmocki ...