网页制作之DOM操作篇

  1. 找到标签

     	a.  直接查找
        document.getElementById("i1")           ID
        document.getElementByTagName("div")     标签名
        document.getElementByName("div")        name
        document.getElementByClassName("div")   类
        b.  间接查找
        tag = document.getElementById("i1")
        tag.parentElement                       查找该标签的父标签
    
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <input type="text" id="name">
    <input type="button" οnclick="GetData()" value="提交">
    <script>
        function GetData() {
            var i = document.getElementById(id="name")
            alert(i.value)
        }
    </script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .hide{
            display: none;
        }
        .mainm{
            background-color: #382eff;
        }
        .mainm .con{
            background-color: white;
            /*display: none;*/
        }
    </style>
</head>
<body>
    <div>
        <div id="t1" class="mainm" οnclick="ShowT('t1')">菜单1
            <div class="con">内容1</div>
            <div class="con">内容1</div>
            <div class="con">内容1</div>
        </div>
        <div id="t2" class="mainm" οnclick="ShowT('t2')">菜单2
            <div class="con">内容2</div>
            <div class="con">内容2</div>
            <div class="con">内容2</div>
        </div>
        <div id="t3" class="mainm" οnclick="ShowT('t3')">菜单3
            <div class="con">内容3</div>
            <div class="con">内容3</div>
            <div class="con">内容3</div>
        </div>
        <div id="t4" class="mainm" οnclick="ShowT('t4')">菜单4
            <div class="con">内容4</div>
            <div class="con">内容4</div>
            <div class="con">内容4</div>
        </div>
    </div>
    <script>
        function ShowT(nid) {
            var cur_tag = document.getElementById(nid)
            var tag_list = cur_tag.parentElement.children
            for(var i=0;i<tag_list.length;i++){
                for(var j=0;j<tag_list[i].children.length;j++){
                    tag_list[i].children[j].classList.add("hide")
                }
            }
            for(var n=0;n<cur_tag.children.length;n++){
                cur_tag.children[n].classList.remove("hide")
            }
        }
    </script>
</body>
</html>
  1. 标签操作

        a.  innerText(仅文本)
        tmp = label.innerText                   获取标签的值
        label.innerText = "Hello"               修改标签的值
        b.  className
        tag = document.getElementById("i1")
        tag.className = "c1"                    直接完整的改变样式为c1
        tag.classList.jadd("c2")                 添加样式c2
        tag.classList.remove("c2")              删除样式c2
    
  2. 文本内容操作

         innertext   仅文本
         innerHTML   全内容
         value
             input   value获取当前标签中的值
             select  获取选中的value值(selectedIndex)
             textarea    value获取当前标签的value值
             搜索框的实例
    
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div style="width:600px;margin: 0 auto;">
        <input id="i1" οnfοcus="Focus()" οnblur="Blur()" type="text" value="请输入关键字"/>
        <input placeholder="请输入关键字"/>
    </div>
    <script>
        function Focus() {
            var tag=document.getElementById("i1");
            var val=tag.value;
            if(val=="请输入关键字"){
                tag.value = "";
            }
        }
        function Blur() {
            var tag = document.getElementById("i1");
            var  val = tag.value;
            if (val==""){
                tag.value = "请输入关键字";
            }
        }
    </script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div>
        <p id="show"></p>
<!--        <input id="status" type="text" />-->
        <input type="button" οnclick="Delete()" value="删除">
    </div>
    <script>
        function Delete() {
            var tag = document.getElementById("show");
            tag.innerText="已删除";
            setTimeout(function () {
                tag.innerText="";
            },3000);
        }
    </script>
</body>
</html>
  1. 样式操作

         对象操作
             tag.className
             tag.classList
         细节操作
             tag.style.color="red";
             tag.style.backgroundColor="red";
             tag.style.fontSize="18px";
    
<!DOCTYPE html>
<!--DOM1-->
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <table border="1px" width="300px">
        <tr οnmοuseοver="Over(0)" οnmοuseοut="Out(0)"><td>1</td><td>2</td><td>3</td></tr>
        <tr οnmοuseοver="Over(1)" οnmοuseοut="Out(1)"><td>1</td><td>2</td><td>3</td></tr>
        <tr οnmοuseοver="Over(2)" οnmοuseοut="Out(2)"><td>1</td><td>2</td><td>3</td></tr>
    </table>
    <script>
        function Over(n) {
            var tag = document.getElementsByTagName("tr");
            tag[n].style.backgroundColor="red";
        }
        function Out(n) {
            var tag = document.getElementsByTagName("tr");
            tag[n].style.backgroundColor="";
        }
    </script>
</body>
</html>
  1. 属性操作

         attributes
         getAttributes
         setAttributes
    
  2. 创建标签,并添加到HTML中

         a.  字符串形式
         b.  对象的方式
             document.createElement("input")
    
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div id="i1">
        <input type="button" οnclick="AddEle()" value="+" />
        <input type="button" οnclick="AddElement()" value="+" />
        <input type="text" />
    </div>
    <script>
        function AddEle() {
            var tag="<p><input type='text' /></p>";
            document.getElementById("i1").insertAdjacentHTML("beforeend",tag);
        }
        function AddElement() {
            var input = document.createElement("input");
            input.setAttribute("type","text");
            input.style.color = "red";
            input.style.fontSize = "22px";
            var p = document.createElement("p");
            p.appendChild(input);
            document.getElementById("i1").appendChild(p);
        }
    </script>
</body>
</html>
  1. 提交表单

         任何标签都可以通过dom中的submit进行表单的提交
         document.getElementById("form").submit()
    
  2. 其它

        location.href                       获取当前地址
        location.href = location.href       页面刷新
        location.reload()
        location.href = "url"               重定向,跳转
    
        var obj=setInterval(function(){     创建定时器obj
                console.log(1);
            },2000);
        clearInterval(obj)                  清除定时器obj
        var Tim = setTimeout(func,2000)     2秒后执行func
        clearTimeout(Tim)                   清除定时操作
    
  3. 事件

        onclick,onblur,onfocus
        行为  样式  结构   相分离的页面?
        JS    CSS  HTML
    
        绑定事件:
            a   直接标签绑定
            b   现获取dom对象,然后在JS进行绑定
    
        this 当前触发事件的标签:
            a   第一种绑定方式
                <input id="i1" type="button" onclick="ClickOn(this)"
                function ClickOn(self){
                    //self    当前点击的标签
                }
            b   第二种绑定方式
                tag.onclick=function(){
                    //this代指当前点击的标签
                    this.style.color="red";
                }
            c   第三种绑定方式
                tag.addEventListener("click",function(){
                    console.log("aaa");
                },false);
                // 第一个参数表示标签要添加的事件名,第二个参数表示相应事件,
                // 第三个参数表示的是添加事件的顺序:true 捕捉 从下往上添加
                //                             false 冒泡 从上往下添加
    
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div id="i1">
        点我
    </div>
    <script>
        var tag = document.getElementById("i1");
        tag.addEventListener("click",function () {
            console.log("aaa");
        },false);
        tag.addEventListener("click",function () {
            console.log("bbb");
        },false);
    </script>
</body>
</html>
        active object=====> AO
            1.形式参数
            2.局部变量
            3.函数声明表达式

            1.形式参数
                AO.age=undefined
                AO.age=3
            2.局部变量
                AO.age=undefined
            3.函数声明表达式
                AO.age=function

            <script>
                function t1(age) {
                    console.log(age);   // function 由于function的优先级最高,直接替代了实参的传递
                    var age = 27;
                    console.log(age);   // 27
                    function age() {};
                    console.log(age)    // 27
                }
                t1(3);
            </script>
<!DOCTYPE html>
<!--DOM1-->
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <table border="1px" width="300px">
        <tr><td>1</td><td>2</td><td>3</td></tr>
        <tr><td>1</td><td>2</td><td>3</td></tr>
        <tr><td>1</td><td>2</td><td>3</td></tr>
    </table>
    <script>
        var tag = document.getElementsByTagName("tr");
        var len = tag.length
        for (var i=0;i<len;i++){
            tag[i].οnmοuseοver=function () {
                this.style.backgroundColor="red";
            }
            tag[i].οnmοuseοut=function () {
                this.style.backgroundColor="";
            }
        }
    </script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值