DHTML

 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  文档就绪时间

原文地址:https://www.cnblogs.com/gxlaqj/p/11376121.html