zoukankan      html  css  js  c++  java
  • python 学习_第五模块 DMO

    python 学习_第五模块 DMO

    1. 节点

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>02 节点</title>
    </head>
    <body>
        <p title="我是yy" class="" id="">yy</p>
        <ul>
            <li></li>
        </ul>
        <!-- 节点  node-->
        <!-- 1.元素节点(element node)  2.文本节点 (text node) 3.属性节点 (attribue node)-->
        <!-- 没有内容 的文档是没有任何价值的,而大多数内容都是有文本提供-->
    </body>
    </html>

     

     

    2. 获取元素节点的方式

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>获取元素节点的方式</title>
    </head>
    <body>
        <h2>你要买什么课程?</h2>            
        <p title='请您选择购买的课程'>本课程是web全栈课程,期待你的购买!</p>
        <ul id='classList'>
            <li class='item'>JavaScript</li>
            <li class='item'>css</li>
            <li>DOM</li>
        </ul>
        <!--节点类型
            1. 元素节点
            2. 属性节点
            3. 文本节点-->
        <script type="text/javascript">
            // 1 document.getElementById() 单个对象
            var eleNode = document.getElementById('classList');
            console.log(eleNode);  // 整个ul
            console.log(typeof eleNode); // object
    
            //  2 document.getElementsByTagName()  获取一个对象集合  有点像数组   
            var olis = document.getElementsByTagName('li');
            console.log(olis);  // HTMLCollection(3) [li.item, li.item, li]
            console.log(typeof olis); // object
    
            var oTitle = document.getElementsByTagName('h2');
            console.log(oTitle); //HTMLCollection [h2]
            console.log(oTitle[0]); // <h2>你要买什么课程?</h2>    
    
            for (var i = 0; i <olis.length; i++ ){
                console.log(olis[i]); 
            }
            console.log(typeof olis);  //object
    
            // 3 document.getElementsByClassName('item'); 获取出来的是一个节点对象集合
            var oItems = document.getElementsByClassName('item');
            console.log(oItems); //HTMLCollection(2) [li.item, li.item]
    
        </script>
    </body>
    </html>

     

     

    3. 获取属性和设置属性

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>获取属性和设置属性</title>
        <style type="text/css">
            #box{
                color: red;        }
        </style>
    </head>
    <body>
        <h2>你要买什么课程?</h2>
        <p title='请您选择购买的课程'>本课程是web全栈课程,期待你的购买!</p>
        <ul id='classList'>
            <li class='item'>JavaScript</li>
            <li class='item'>css</li>
            <li>DOM</li>
        </ul>
        <script type="text/javascript">
            var oP = document.getElementsByTagName('p')[0]
            // console.log(oP);
            //  1 获取属性值 有一个必需的参数,这个节点对象的名字    getAttribute('title')
            var title = oP.getAttribute('title');
            console.log(title); // 请您选择购买的课程
            // var className = oP.getAttribute('class');
            // console.log(className);//null
    
    
            // 2 设置属性值  setAttribute(name,value)
            oP.setAttribute('id','box');
    
        </script>
    </body>
    </html>

    4 节点属性

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>节点属性</title>
    </head>
    <body>
        <!-- nodeName   nodeValue  nodeType -->
        <div id="box" title="我是文本">我是一个文本节点<!--我是注释--></div>
        <script type="text/javascript">
    
            // 1 元素节点
            var oDiv =  document.getElementById('box');
            // console.log(oDiv);   //<div id="box" title="我是文本">我是一个文本节点<!--我是注释--></div>
            console.log(oDiv.nodeName + "|"+oDiv.nodeValue+"|"+oDiv.nodeType); //DIV|null|1
    
            // 2 获取属性节点
            var attrNode = oDiv.attributes[0];
            // console.log(attrNode); // id='box'
            console.log(attrNode.nodeName + "|"+attrNode.nodeValue+"|"+attrNode.nodeType);  //id|box|2
     
            // 3 获取文本节点
            var textNode = oDiv.childNodes[0];
            // console.log(textNode); // "我是一个文本节点"
            console.log(textNode.nodeName + "|"+textNode.nodeValue+"|"+textNode.nodeType);   //#text|我是一个文本节点|3
    
            // 4 获取注释节点
            var commentNode = oDiv.childNodes[1];
            // console.log(commentNode); //<!--我是注释-->
            console.log(commentNode.nodeName + "|"+commentNode.nodeValue+"|"+commentNode.nodeType); //#comment|我是注释|8
    
    
            console.log(document.nodeType);  //9
    
        </script>
    </body>
    </html>

    5 节点常用的其他属性

    <!DOCTYPE html>
    <html>
    <head>
        <title>节点对象的常用其他属性</title>
    </head>
    <body>
        <div class="previous">我是上个兄弟</div><div id="father"><p>mjj</p><p>mjj2</p></div><div class="sibling">我是下个兄弟</div>
    
        <script type="text/javascript">
            var oFather = document.getElementById('father');
            console.log(oFather.childNodes[0]);         // <p>mjj</p>
            console.log(oFather.childNodes[1]);         // <p>mjj2</p></div>
            console.log(oFather.firstChild);               // <p>mjj2</p></div>
            console.log(oFather.childNodes[oFather.childNodes.length - 1]);//<p>mjj2</p></div>
            console.log(oFather.lastChild);              // <p>mjj2</p></div>
            console.log(oFather.parentNode.parentNode);  // 父节点
            console.log(oFather.nextSibling);              //<div class="sibling">我是下个兄弟</div>
            console.log(oFather.previousSibling);       //<div class="previous">我是上个兄弟</div>
        </script>
    </body>
    </html>

    6 节点对象属性在各浏览器兼容性处理

    <!DOCTYPE html>
    <html>
    <head>
        <title>节点对象属性在各浏览器兼容性处理</title>
    </head>
    <body>
        <div class="previous">我是上个兄弟</div>
        <div id="father">
            <p>mjj</p>
            <p>mjj2</p>
        </div>
        <div class="sibling">我是下个兄弟</div>
    
        <script type="text/javascript">
            var oFather = document.getElementById('father');
    
            //  获下面的元素节点
            function get_childNodes(fatherNode){
                var nodes = fatherNode.childNodes;
                var arr = []; // 保存已经获取的元素节点对象
                for (var i=0; i <nodes.length; i++){
                    if (nodes[i].nodeType===1){
                        arr.push(nodes[i]);
                    }
                }
                return arr;
            }
            var childnodes = get_childNodes(oFather);
            console.log(childnodes); // [p, p]
    
            // 获取上一个节点
            function get_previousSibling(n){
                var x = n.previousSibling;
                while (x && x.nodeType != 1){
                    x = x.previousSibling;
                }
                return x;
            }
            console.log(get_previousSibling(oFather));
    
    
            // 获取下一个节点
            function get_nextSibling(n){
                var x = n.nextSibling;
                while (x && x.nodeType != 1){
                    x = x.nextSibling;
                }
                return x;
            }
            console.log(get_nextSibling(oFather));
        </script>
    </body>
    </html>

     

    7 节点方法

    <!DOCTYPE html>
    <html>
    <head>
        <title>07 节点方法</title>
        <style type="text/css">
            .active{
                color: black;
                font-size: 30px;
            }
        </style>
    </head>
    <body>
        <div id="box">
            <p id="active">mjj</p>
        </div>
    
        <!-- 
            动态的操作节点
            1.创建节点  createElement()
            2.插入节点  appendChild()
                       insertBefore(newNode,node)
                 3.删除节点 removeChild(childNode)
                 4.替换节点 replaceChild(newNode,node)
                 5.创建文本节点 createTextNode()
         -->
         <script type="text/javascript">
             var oDiv = document.getElementById('box');
             var oAtive = document.getElementById('active');
    
    
             var newNode = document.createElement('p');
            var newNode2 = document.createElement('p');
            var newNode3 = document.createElement('a');
            newNode.innerHTML = ' <a href="#">test@qq.com</a>';
            newNode2.innerHTML = '<a href="#">mjj@qq.com</a>';
            newNode3.setAttribute('href','http://www.baidu.com');
             newNode3.innerHTML = '百度一下';
    
    
             newNode.setAttribute('class','active');
             oDiv.appendChild(newNode);
             // 第一个参数是新插入的节点,第二个参数是参考的节点
             oDiv.insertBefore(newNode2,oAtive);
    
             /*    创建文本节点
             var textNode = document.createTextNode('ssss');
             newNode.appendChild(textNode);
            */
    
            // newNode.innerHTML = 'WWWWWW';
            // newNode.innerHTML = ' <a href="#">test@qq.com</a>';
            // newNode.innerText = '<a href="#">test@qq.com</a>';
    
    
    
            // oDiv.removeChild(oAtive);  //删除
            oDiv.replaceChild(newNode3, oAtive)  // 替换
    
    
    
         </script>
    </body>
    </html>

    8 动态操作样式

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>动态操作样式</title>
        <style type="text/css">
            .hightLight {
                background-color: black;
                color: white;
                width: 250px;
                height: 250px;
                line-height: 250px;
                text-align: center;
                font-size: 30px;
    
            }
        </style>
    </head>
    <body>
        <p id='box'>wer</p>
        <script type="text/javascript">
            var para = document.getElementById('box');
            // console.log(para.style);
    
            /*
            // 1 直接操作样式
            para.style.color = 'white';
            para.style.backgroundColor = 'black';
            para.style.width = '250px';
            para.style.height = '250px';
            para.style.textAlign= 'center';
            para.style.lineHeight = '250px';
            para.style.fontSize = '30px';
            */
    
            // 2、通过控制属性的类名来控制样式
            para.setAttribute('class','hightLight');
    
        </script>
    </body>
    </html>

     

     

    9 事件

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>事件</title>
        <!-- 
        onclick     鼠标点击事件
        onmouseover    鼠标经过事件    
        onmouseout    鼠标移开事件
        onchange    文本框内容改变事件
        onselect    文本框内容被选中事件
        onfocus        光标聚焦事件
        onblur        光标失焦事件
        onload        页面加载事件
         -->
         <style type="text/css">
            #box{
                width: 100px;
                height: 100px;
                background-color: blue;
            }
         </style>
    </head>
    <body>
        <div id="box" ></div>
        <script type="text/javascript">
            var oDiv = document.getElementById('box');
            var isBlue = true;
            oDiv.onclick = function(){
                if (isBlue){
                    // this 指向了当前的元素节点对象
                    this.style.backgroundColor = 'red';
                    isBlue = false;
                }else{
                    this.style.backgroundColor = 'blue';
                    isBlue = true;
                }
            }
    
    
    
            // function add(){
            //     alert("wwwwwwwwwwwwwwwww");
            // }
            // oDiv.onclick=add;
    
        </script>
    
    </body>
    </html>

     

    10 鼠标悬浮事件

    <!DOCTYPE html>
    <html>
    <head>
        <title>onmouseover()onmouseout()事件</title>
        <style type="text/css">
            #box{
                width: 200px;
                height: 200px;
                background-color: red;
            }
        </style>
    </head>
    <body>
        <div id="box">
        </div>
        <script type="text/javascript">
        // 1 找开关  2 按一下   3 灯亮了
    
        // 1. 找到触发的时间对象   2 事件   3 事件处理程序 
        var oDiv = document.getElementById('box');
        
        //  2 鼠标滑过事件
        oDiv.onmouseover = function(){
            this.style.backgroundColor = 'green';
        }
    
        // 3 鼠标移开事件
        oDiv.onmouseout = function(){
            this.style.backgroundColor = 'red';
        }
        </script>
    </body>
    </html>

    11 表单控制事件

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>表单控制事件</title>
        <style type="text/css">
            .text{
                color: red;
                font-size: 12px;
            }
        </style>
    </head>
    <body>
        <form action="">
            <p class="name">
                <label for="username">用户名:</label>
                <input type="text" name="user" id="username">
            </p>
            <p class="pwd">
                <label for="pwd">密码:</label>
                <input type="password" name="pwd" id="pwd">
            </p>
            <input type="submit" name="">
        </form>
        <script type="text/javascript">
            var userName = document.getElementById('username');
            var newNode = document.createElement('span');
            userName.onfocus = function(){
                newNode.innerHTML = '请输入用户名';
                newNode.setAttribute('class', 'text')
                userName.parentNode.appendChild(newNode);
            }
    
            userName.onblur = function(){
                newNode.innerHTML = '请输入正确的用户名';
                newNode.setAttribute('class', 'text')
                userName.parentNode.appendChild(newNode);
            }    
    
        </script>
    </body>
    </html>

     

     

    12 内容选中事件和内容改变事件

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>内容选中事件和内容改变事件</title>
    </head>
    <body>
        <p title='请您选择购买的课程'>本课程是web全栈课程,期待你的购买!</p>
        <textarea cols="30" rows="10">请写入个人简介,字数不少于200字</textarea>
        <input type="text" name="" value="mjj">
        <script type="text/javascript">
            var textArea = document.getElementsByTagName('textarea')[0];
            var inputObj = document.getElementsByTagName('input')[0];
    
            textArea.onselect = function(){
                console.log('内容被选中');
            }
    
            inputObj.onchange = function(){
                console.log('内容被改变了');
            }
    
            // inputObj.oninput = function(){
            //     console.log('内容被实时改变了');
            //     console.log(this.value);
            // }
    
        </script>
    </body>
    </html>

     

     

    13 窗口加载事件

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>窗口加载事件</title>
    </head>
    <body>
        <script type="text/javascript">
            /*
            setTimeout(function(){
                var oDiv = document.getElementById('box');
                console.log(oDiv);
                oDiv.onclick = function(){
                    this.innerHTML = 'qqqqqqq';
                }
            }, 0)
            */
    
            // 等待文档元素加载完成才会调用onload()
            window.onload = function(){
                var oDiv = document.getElementById('box');
                console.log(oDiv);
                oDiv.onclick = function(){
                    this.innerHTML = 'qqqqqq';
                }
            }
            // window.onload = function(){
            //     console.log(11111);
            // }
            
    
        </script>
        <div id="box">ssssss</div>
    </body>
    </html>

     

     

    14  获取其它DOM(事件源)的三种方式

     

    var oDiv1 = document.getElementById("box1");      
    //方式一:通过id获取单个标签
    
    var oDiv2 = document.getElementsByTagName("div")[0];     
    //方式二:通过 标签名 获得 标签数组,所以有s
    
    var oDiv3 = document.getElementsByClassName("box")[0];  
    //方式三:通过 类名 获得 标签数组,所以有s

     

     

    15 常用事件

     

     

     

     

  • 相关阅读:
    大数据笔记
    关于服务器编程的笔记
    [转] IPC之管道、FIFO、socketpair
    一些公司链接
    Delphi 通过字符串实例化类
    Delphi根据字符串实例化对象
    Class-reference types 类引用类型--快要失传的技术
    GETCLASS与REGISTERCLASS的应用一例
    Delphi XE增强的RTTI妙用--动态创建包中的窗口类
    Delphi2010的RTTI增强
  • 原文地址:https://www.cnblogs.com/augustyang/p/11301590.html
Copyright © 2011-2022 走看看