DHTML的原理:
在DHTML中,将所有的HTML元素都是用一个一个的JS对象来进行表示,使用对象来表示元素本身,使用对象之间的包含关系来表示元素之间的层级关系
DHTML可以分为两个部分,分别是BOM和DOM
BOM : Browser Objcet Model 浏览器 对象模型(例如获取浏览器地址)
DOM: Document Object Model 文档对象模型
一。如下为DOM:
1.如何获取 html 元素
//1通过id获取用户名输入框元素,若id有重复的,则返回第一个 var inp = document.getElementById("id"); //通过用户名输入框获取输入框的值 var value1 = inp.value;
//2.通过name获取输入框的元素 name可以有多个,返回一个数组
var eles = document.getElementsByName("password");
var ele = eles[0];
ele.value;
//3.通过标签名获取所有的input元素的value值
var arrInps = document.getElementsByTagName("input");
//遍历所有的input元素,获取input元素的值
for(var i=0;i<arrInps.length;i++){
arrInps.[i];
arrInps.[i].value;
}
//4获取p标签内的html内容,在获取p标签中的文本内容
//现获取p元素(根据id获取)
var arrId = document.getElementById("id");
//根据元素获取元素中的html内容
arrId.innerHTML;
//根据元素获取元素中的所有文本
arrId.innerText;
注意:一般的元素,比如:div/span/p/h1/img 是没有value属性的,只有表单项元素才具有value
2.如何增删改 html 元素
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <link rel="stylesheet" href="css/new_file.css"/> <!--添加一个节点,添加一个div到body的最后面--> <script type="text/javascript"> function addNode(){ //创建一个div元素 var newDiv = document.createElement("div"); newDiv.innerHTML="我是新来的"; newDiv.style.backgroundColor="darkgoldenrod"; newDiv.style.color="#fff"; //获取父元素 //也可以使用document.getElementByName("body"); var body = document.body; //为body添加一个子元素 body.appendChild(newDiv); } </script> <!--删除一个节点--> <script type="text/javascript"> function delNode(){ //获取id为a 元素 var arrchild = document.getElementById("a"); //获取父元素 //也可以使用document.getElementByName("body"); var body = arrchild.parentNode; //为body删除一个子元素 body.removeChild(arrchild); } </script> <!--使用一个新元素替换一个元素--> <script> function replaceDiv(){ //创建一个新元素 var arrDiv = document.createElement("div"); arrDiv.innerHTML = "我是来替换的"; arrDiv.style.background = "red"; //获取将要替换的子元素的父元素 var arrb = document.getElementById("b"); var parentDiv = arrb.parentElement; //替换 parentDiv.replaceChild(arrDiv,arrb) } </script> <!--克隆节点、插入节点到指定元素的前面--> <script type="text/javascript"> <!--克隆元素,并添加到body的最后面--> function copyDiv(){ var divd = document.getElementById("d"); //克隆一份 var copyDiv = divd.cloneNode(true); //获取body元素,并放在body的最后面 // var body = document.body; // body.appendChild(copyDiv); //放在指定的div的前面 var arra = document.getElementById("a"); document.body.insertBefore(copyDiv,arra); } </script> </head> <body> <div id="a">is ok !!!</div> <div id="b">is ok !!!</div> <div id="c">is ok !!!</div> <div id="d">is ok !!!</div> <br /><hr /> <span onclick="addNode()">添加一个框</span> <span onclick="delNode()">删除一个框</span> <span onclick="replaceDiv()">替换一个框</span> <span onclick="copyDiv()">克隆一个框</span> </body> </html>
二。BOM浏览器对象模型
1. window
window表示浏览器中一个打开的窗口
1.1 alert方法 定义一个消息对话框
window.alert("hello"); window可以不写
1.2 confirm方法 第一一个确认的对话框
var res = window.confirm("hello");
if(res){ //true 确定
alert("...");
}else{ //false 取消
alert("...");
}
1.3 setInterval方法和 clearInterval 方法
setInterval 定义一个定时器
clearInterval 清除一个定时器
1.4 setTimeout方法 和 clearTimeout方法
setTimeout 定义一个一次性的定时器
clearTimeout 清除一次性定时器
1.5 onload 文档就绪时间