2、元素对象(element对象)
** 要操作element对象,首先必须要获取到element
- 使用document里面相应的方法获取
** 方法
*** 获取属性里面的值
getAttribute("属性名称")
*** 设置属性的值
setAttribute("属性名称","传入值")
*** 删除属性
removeAttribute("属性名称")
不能删除value
*** 想要获取标签下面的子标签
** 使用childNodes,这个方法兼容性差
** 获取标签下面子标签的唯一有效办法,使用getElementsByTagName方法
3、Node对象属性一
* nodeName
* nodeType
* nodeValue
* 使用dom解析html时候,需要html里面的标签,属性和文本都封装成对象
* 标签结点对应的值
nodeType:1
nodeName:大写标签名称
nodeValue:null
* 属性结点对应的值
nodeType:2
nodeName:属性名称
nodeValue:属性的值
* 文本节点对应的值
nodeType:3
nodeName:#text
nodeValue:文本内容
4、Node对象属性二
<ul>
<li>tough</li>
<li>sarah</li>
</ul>
* 父节点
- ul是li的父节点
- parentNode
* 子节点
- li是ul的子节点
- childNodes:得到所有子节点,但是兼容性很差
- firstChild:获取第一个子节点
- laseChild:获取最后一个子节点
* 同辈节点
- li直接关系是同辈节点
- newxSibling:返回一个给定节点的下一个兄弟节点
- previousSibling:返回一个给定节点的上一个兄弟节点
5、操作dom树
** appendChild方法
- 添加子节点到末尾
- 特点:类似于剪切粘贴的效果
** insertBofore(newNode,oldNode)方法
- 在某个节点之前插入一个新的节点
- 两个参数
* 要插入的节点
* 在谁之前插入
- 插入一个节点,新插入节点由于不存在需要创建一个
1、创建标签
2、创建文本
3、把文本添加到标签下面
<ul id=ul1>
<li id="li1">tough</li>
<li id="li2">sarah</li>
</ul>
/*
要在tough和sarah中间插入一个新的标签 doggy
*/
1、获取到li2标签
var li2 = document.getElementById("li2");
2、创建li
var li3 = document.createElement("li");
3、创建文本
var text3 = document.createTextNode("doggy");
4、把文本添加到li里面
li3.appendChild(text3);
5、获取到ul
var ul1 = document.getElementById("ul1");
6、把li添加到ul下面(既把新标签添加到sarah之前)
ul1.insertBefore(li3,li2);
** removeChild方法:删除节点
- 通过父节点删除,不能自己删除自己
** replaceChild(newNode,oldNode)方法:替换节点
- 不能自己替换自己,通过父节点替换
- 两个参数
** 第一个参数:新的节点,要替换的节点
** 第二个参数:旧的节点,被取代的节点
** cloneNode 复制节点
<div id="div1">
<ul id=ul1>
<li id="li1">tough</li>
<li id="li2">sarah</li>
</ul>
</div>
/*
把<ul id=ul1>复制到div里面去
*/
1、获取ul
var ul1 = document.getElementById("ul1");
2、执行复制方法cloneNode复制 true
var ulcopy = ul1.cloneNode(true);//复制,放到类似于剪切板里面
3、获取div
var div1 = document.getElementById("div1");
4、执行复制放入div里面去
div1.appendChild(ulcopy);
** 注意:执行div1.appendChild()方法时,应调用ulcopy而不是ul1,如果调用ul1相当于剪切复制。
** 操作dom总结
* 获取节点的使用方法
getElementById(): 通过节点的id属性,查找对应节点
getElementByName():通过节点的name属性,查找对应节点
getElementByTagName():通过节点名称,查找对应节点
* 插入节点方法
insertBefore方法:在某个节点之前插入
appendChild方法:在末尾添加,相当于剪切粘贴
* 删除节点方法
removeChild方法:通过父节点删除
* 替换节点方法
replaceChild方法:通过父节点替换
6、innerHTML属性
* 这个属性不是don的组成部分,但是大多数浏览器都支持这个属性
第一个作用:获取文本内容
<span id = "span1">
<h1>tough</h1>
</span>
var spannew = document.getElementById("span1")
alert(spannew.innerHTML); //显示tough
第二个作用:向标签里面设置内容(可以是html代码)
<div id = "div1">
<h1>tough</h1>
</div>
var divnew = document.getElementById("div1");
divnew.innerHTML = "<h1>Sarah</h1>";