js DOM(1)

<!DOCTYPE html>
<!--
    一个完整的javaScript可以分为三个部分:
        ECMAScript(核心);
        DOM(文档对象模型); 是Document Object Model的一个简写
        BOM(浏览器对象模型);
    Document:可以理解为整个web加载的页面
    元素节点对象
 -->
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="description" content="">
        <meta name="keywords" content="">
        <title>Examples</title>
        <style type="text/css">
        </style>
        <script type="text/javascript">
        </script>
    </head>
    <body>
        <div id="box">这里是一个div标签</div>
        <h1>这里是一个h1标签</h1>
        <ul id="list">
            <li>1</li>
            <li>2</li>
            <li>3</li>
        </ul>
    </body>
</html>

节点树图

这里写图片描述

获取元素节点对象的方法

<!DOCTYPE html>
<!--

    // document.getElementById("div1");
    // 页面文档  下面的  获取元素  通过  id名
    // 1:获取谁下面的元素
    // 2:通过什么方式来获取

 -->
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="description" content="">
        <meta name="keywords" content="">
        <title>Examples</title>
        <style type="text/css">

        </style>

        <script type="text/javascript">

            window.onload = function(){

                //var oDiv = document.getElementById("div1");     //通过id名获取一个元素节点对象;


                // var oLi = document.getElementsByTagName("li");    //通过标签名来获取元素节点对象;
                // alert(oLi.length);
                // alert(oLi[0].innerHTML);       //oLi[0].innerHTML 获取对象的内容
                // alert(oLi[1].innerHTML);
                // alert(oLi[2].innerHTML);
                //alert(oLi instanceof Array);      //判断oLi是不是数组一个实例 打印false 说获取的oLi不是一个真正的数组,为一个伪数组


                //通过有指定名称的元素节点对象
                // var obj = document.getElementsByName("pp");
                // alert(obj.length);
                // alert(obj[0].innerHTML);
                // alert(obj[1].innerHTML);


//***********************************************************************************************************************

                //元素节点的属性
                // var oDiv = document.getElementById("div1");
                //innerHTML;   获取元素节点对象的内容
                //tagName;     获取元素节点对象的标签名
                // alert(oDiv.innerHTML);
                // alert(oDiv.tagName);


//***********************************************************************************************************************


                // var oDiv = document.getElementById("div1");
                //获取属性值;
                // alert(oDiv.id);
                // alert(oDiv.title);

                //设置属性值
                // oDiv.id = "box";         //id名不建议随便改动
                // oDiv.title = "小红";

                //添加属性
                // oDiv.an = "大家好";   //页面标签中不显示,但是这个属性是可以访问到的
                // alert(oDiv.an);


//***********************************************************************************************************************

                var oDiv = document.getElementById("div1");
                // setAttribute();  设置元素节点对象的属性   格式:setAttribute(属性名,属性值); 可以直接添加页面的标签中
                oDiv.setAttribute("an","大家好"); //setAttribute()设置的属性 要用getAttribute()方法来获取


                // getAttribute();   获取元素节点对象的属性值
                // var str = oDiv.getAttribute("an");
                // alert(str);


                // removeAttribute()  删除元素节点对象的属性
                oDiv.removeAttribute("an");
                var str = oDiv.getAttribute("an");
                alert(str);


//***********************************************************************************************************************


            }

        </script>

    </head>
    <body>

        <div id="div1" title="胖胖">我是一个div</div>

        <div name="pp">我也是一个div标签</div>
        <p name="pp">我是一个p标签</p>

        <ul id="list">
            <li>1</li>
            <li>2</li>
            <li>3</li>
        </ul>

    </body>
</html>

class属性

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="description" content="">
        <meta name="keywords" content="">
        <title>Examples</title>
        <style type="text/css">
            .div1{
                background: red;
            }
            .div2{
                background: blue;
            }
        </style>

        <script type="text/javascript">

            window.onload = function(){

                var oDiv = document.getElementsByTagName("div")[0];
                //alert(oDiv.class);       //打印undefined
                //alert(oDiv.className);   //打印div1  获取class值用.className

                oDiv.className = "div2";
            }

        </script>
    </head>
    <body>
        <div class="div1">1111</div>
    </body>
</html>

样式操作

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="description" content="">
        <meta name="keywords" content="">
        <title>Examples</title>
        <style type="text/css">
            #div2{
                width: 150px;
                height: 100px;
                background: green;
            }
        </style>

        <script type="text/javascript">

             window.onload = function(){

                // var oDiv = document.getElementById("div1");

                //获取样式值
                // var an = oDiv.style.width;
                //alert(an);    //打印300px
                // alert(oDiv.style["width"]);

                // alert( oDiv.style.font-size );    //报错
                // alert( oDiv.style.fontSize );   //打印2em;
                //alert( oDiv.style["font-size"] )   //打印2en

//****************************************************************************************************

                //设置样式值
                // var oDiv = document.getElementById("div1");
                // oDiv.style.width = "500px";
                // oDiv.style.fontSize = "6em";

//****************************************************************************************************


                //获取style标签里的样式
                var oDiv2 = document.getElementById("div2");
                // alert( oDiv2.style.width );   //打印空白 没有获取到
                // alert( window.getComputedStyle(oDiv2,null).width );    //不兼容IE8    会报错
                // alert( oDiv2.currentStyle.width );                    //能兼容IE8   不兼容火狐与谷歌

                // alert(oDiv2.currentStyle);   //在火狐与谷歌在打印undefined 但不报错
                //兼容处理
                // if(oDiv2.currentStyle){
                //     alert(oDiv2.currentStyle.width);
                // }else{
                //     alert( window.getComputedStyle(oDiv2,null).width );
                // }


                //获取样式封装
                function getStyle(obj,attr){
                    if(obj.currentStyle){
                        return obj.currentStyle[attr];
                    }else{
                        return window.getComputedStyle(obj,null)[attr];
                    }
                }
                var str = getStyle(oDiv2,"backgroundColor");
                alert(str);

             }

        </script>

    </head>
    <body>

        <div id="div1" style="width:300px; height:200px; background:red; font-size:2em">123</div>

        <div id="div2">我是一个div</div>

    </body>
</html>

选项卡Demo

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="description" content="">
        <meta name="keywords" content="">
        <title>Examples</title>
        <style type="text/css">

            *{
                padding: 0px;
                margin: 0px;
            }
            #warp{
                width: 302px;
                height: 250px;
                border: 1px solid black;
                position: relative;
                margin: 100px auto;
            }
            #list li{
                list-style: none;
                width: 100px;
                height: 40px;
                line-height: 40px;
                text-align: center;
                float: left;
                font-size: 1.2em;
                background: red;
                border-right: 1px solid black;
            }
            #list li:last-child{
                border : hidden;
            }
            #list .col{
                background: green;
            }

            #div1 div{
                width: 100%;
                height: 210px;
                background: #ccc;
                line-height: 210px;
                text-align: center;
                position: absolute;
                font-size: 2em;
                top: 40px;
                display: none;
            }

        </style>


        <script type="text/javascript">

            window.onload = function(){

                var oList = document.getElementById("list");
                var oLi = oList.getElementsByTagName("li");
                var obj = document.getElementById("div1");
                var oDiv = obj.getElementsByTagName("div");

                for(var i = 0; i < oLi.length; i++){

                    oLi[i].index = i;      //给每一个Li添加一个属性什么索引值;
                    oLi[i].onclick = function(){
                        //alert(this.index);
                        //alert(this.innerHTML);   //当前点击的对象
                        for(var j = 0; j < oLi.length; j++){
                            oDiv[j].style.display = "none";
                            oLi[j].className = "";
                        }
                        oDiv[this.index].style.display = "block";
                        this.className = "col";
                    }
                }

            }

        </script>


    </head>
    <body>

        <div id="warp">

            <ul id="list">
                <li class="col">java</li>
                <li>C++</li>
                <li>javaScript</li>
            </ul>

            <div id="div1">
                <div style="display:block">java......</div>
                <div>C++......</div>
                <div>javaScript......</div>
            </div>

        </div>

    </body>
</html>

Node节点属性

<!DOCTYPE html>
<!--

    Node对象
        在节点中有元素节点,属性节点,文本节点,
        节点对象有三个属性:nodeName, nodeType, nodeValue;

        元素节点    nodeName == 元素名  nodeType == 1  nodeValue == null

        属性节点    nodeName == 属性名  nodeType == 2  nodeValue == 属性值

        文本节点    nodeName == #text  nodeType == 3  nodeValue == 文本内容

 -->
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="description" content="">
        <meta name="keywords" content="">
        <title>Examples</title>
        <style type="text/css">

        </style>

        <script type="text/javascript">

            window.onload = function(){

                //元素节点
                // var oDiv = document.getElementById("box");    //获取一个元素节点对象
                // alert(oDiv.nodeName);   //打印DIV;
                // alert(oDiv.nodeType);   //打印1;
                // alert(oDiv.nodeValue);  //打印null



                //文本节点;
                // var oDiv = document.getElementById("box");
                // var obj = oDiv.firstChild        //获取div下的第一个子节点
                // alert(obj);          //打印obj  获取到文本节点
                // alert(obj.nodeName);    //#text
                // alert(obj.nodeType);    //打印3
                // alert(obj.nodeValue);   //打印文本内容



                //属性节点
                // var oDiv = document.getElementById("box");
                // var arr = oDiv.attributes;    //获取属性节点集
                // alert(arr[0].nodeName);    //打印id
                // alert(arr[0].nodeType);    //打印2
                // alert(arr[0].nodeValue);   //打印box


            }
        </script>

    </head>
    <body>

        <div id="box" title="胖胖">我是一个div</div>

    </body>
</html>

firstChild与lastChild属性

<!DOCTYPE html>
<!--

    firstChild 获取第一个子节点
    lastChild  获取最后一个子节点

 -->
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="description" content="">
        <meta name="keywords" content="">
        <title>Examples</title>
        <style type="text/css">

        </style>

        <script type="text/javascript">

            window.onload = function(){

                var oUl = document.getElementById("list");
                // var obj = oUl.firstChild;         //获取第一个节点对象,在ie8以下获取到的是第一个元素节点对象
                var obj = oUl.firstElementChild;     //获取第一个元素节点对象,但是在ie8以下得到的值是undefined,但不报错;
                // alert(oUl.firstElementChild);     //打印undefined

                //兼容处理
                var obj = oUl.firstElementChild || oUl.firstChild;
                alert(obj.nodeType);
                alert(obj.innerHTML);


                //lastChild属性与firstChild
            }
        </script>

    </head>
    <body>

        <ul id="list">
            <li>我是第1个Li标签</li>
            <li>我是第2个Li标签</li>
            <li>我是第3个Li标签</li>
            <li>我是第4个Li标签</li>
            <li>我是第5个Li标签</li>
        </ul>

    </body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值