DOM 节点
节点(Node) |
释义 |
对象 |
文档节点 |
整个文档 |
Document 对象 |
元素节点 |
每一个HTML元素 |
Eelement 对象 |
文本节点 |
HTML元素内的文本 |
Text 对象 |
属性节点 |
每一个HTML的属性 |
Attribute 对象 |
注释节点 |
文档的注释内容 |
Comment 对象 |
Attributes属性节点
属性 |
释义 |
nodeType |
节点类型 |
nodeValue |
节点值 |
nodeName |
节点名称 |
innerHTML |
节点(元素)的文本值 |
导航属性
属性 |
释义 |
parentNode |
节点(元素)的父节点 |
firstChild |
节点下第一个子元素 |
lastChild |
节点下最后一个子元素 |
childNodes |
节点(元素)的子节点 |
Node标签的增删改查
方法
方法 |
描述 |
createElement(name) |
建立元素 |
appendChild() |
添加元素 |
removeChild() |
删除元素 |
添加标签节点(createElement)和删除节点标签(removeChild)都是在父级节点上操做的html
综合示例
<html>
<head>
<style>
.div1 { width: 300px;height: 100%;color: #000;float: left;text-align: center;background-color: #FFCCCC;}
div p { background-color: #fff;}
</style>
</head>
<body>
<div class="div1">
<h3>Node的增删改查</h3>
<button onclick="add()">添加标签</button>
<button onclick="del()">删除标签</button>
<button onclick="replace()">替换标签</button>
</div>
<script>
var div_1 = document.getElementsByClassName("div1")[0]; //定位标签元素父级
//添加节点标签函数
function add(){
var ele = document.createElement("p"); //定义建立标签元素
ele.innerHTML="新增的 P 标签"; //添加标签元素内容
div_1.appendChild(ele); //定位标签中添加元素
}
//删除节点标签函数
function del(){
var div_p = div_1.getElementsByTagName("p")[0]; //定义删除的标签元素
div_1.removeChild(div_p); //定位标签中删除元素
}
//修改节点标签函数
function replace(){
var new_title = document.createElement("h2"); //定义建立要修改后的标签
new_title.innerHTML="替换后的新标题" //添加标签元素内容
var old_title = document.getElementsByTagName("h3")[0]; //定义要修改的标签
div_1.replaceChild(new_title,old_title); //进行调遣替换
}
</script>
</body>
</html>
Node样式的增删改查
方法
方法 |
描述 |
[ele].classList.add() |
添加样式 |
[ele].classList.remove() |
删除样式 |
[ele].style.[ClassName] |
修改样式 |
添加标签节点(classList.add)和删除节点标签(classList.remove)都是在当前节点上操做的node
综合示例
<!DOCTYPE html>
<html>
<head>
<style>
.sty_1 { height: 200px;width: 200px;background-color: #FFCCCC;}
.sty_2 { margin: auto;color: #FFF;line-height: 200px;text-align: center;}
</style>
</head>
<body>
<div class="sty_1">
this is test !!!
</div>
<button onclick="add()">添加样式</button>
<button onclick="del()">删除样式</button>
<button onclick="cha()">修改样式</button>
<script>
i = 0;
var div_1 = document.getElementsByClassName("sty_1")[0];
function add(){
div_1.classList.add("sty_2"); //添加样式
}
function del(){
div_1.classList.remove("sty_2") //删除样式
}
function cha(){
var val = ["#CCCCFF","#FFCC99","#99CCFF"];
if (i < val.length -1){
i++;
div_1.style.backgroundColor=val[i]; //修改样式
}
else{
i = 0;
div_1.style.backgroundColor=val[i]; //修改样式
}
}
</script>
</body>
</html>
选项选择
<!DOCTYPE html>
<html>
<body>
<button onclick="SelectALL()">全选</button>
<button onclick="Cancel()">取消</button>
<button onclick="Reverse()">反选</button>
<div>
<input type="checkbox"> 文本
<input type="checkbox"> 文本
<input type="checkbox"> 文本
</div>
<script>
var inputs = document.getElementsByTagName("input"); //定义标签元素数组
function SelectALL()
{
for (var i=0; i<inputs.length;i++) //for循环数组
{
var input=inputs[i]; //循环位置对象
input.checked=true; //标记 true 状态
}
}
function Cancel()
{
for (var i=0; i<inputs.length;i++) //for循环数组
{
var input=inputs[i]; //循环位置对象
input.checked=false; //标记 false 状态
}
}
function Reverse()
{
for (var i=0; i<inputs.length;i++) //for循环数组
{
var input=inputs[i]; //循环位置对象
input.checked=!input.checked; //状态取反
}
}
</script>
</body>
</html>
二级联动
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<select id="provinces">
<option>请选择省份</option>
</select>
<select id="citys">
<option>请选择城市</option>
</select>
<script>
data = {"上海市":["徐汇区","宝山区","浦东新区"],"北京市":["朝阳区","丰台区","昌平区"]}
var pro_ele = document.getElementById("provinces");
var city_ele = document.getElementById("citys");
for (var i in data){ //遍历省份
var ele = document.createElement("option"); //定义建立标签元素
ele.innerHTML=i; //添加标签元素内容
pro_ele.appendChild(ele); //定位标签中添加元素
}
pro_ele.onchange=function(){ //域的内容被改变触发事件
var city_label = this.options[this.selectedIndex]; //经过 this 索引拿到当前选中项的省份标签
var citys = data[city_label.innerHTML]; //经过省份标签拿到当前选中省份的城市
city_ele.options.length=1; //options 只保留第一个,避免不一样省份城市累加
for (var i=0;i<citys.length;i++){ //遍历当前选中省份全部的城市
var ele = document.createElement("option"); //定义建立标签元素
ele.innerHTML=citys[i]; //添加标签元素内容
city_ele.appendChild(ele); //定位标签中添加元素
}
}
</script>
</body>
</html>