zoukankan      html  css  js  c++  java
  • html_Dom

    Document: 每个载入浏览器的HTML文档都会成为一个Document对象。

         Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问。

         并且Document 对象是 Window 对象的一部分,可通过window.document 属性对其进行访问。

    document三个对象方法:

    document.getElementsByTagName('  ') 获取所有的'  '标签(多个元素)
    document.getElementById('  ') 根据‘  ’id找到某标签(一个元素)
    document.getElementsByClassName('  ') 通过样式名找到'   '标签 (多个元素)                     

    小例子;

    <html>
        <head>
            <title> </title>
            <style>
                #n1{
                    color:red;
                }
            </style>
         </head>
         <body>
         <div>
             <div id = "n1">c1</div>
         </div>
        <ul>
            <li>xxx</li>
            <li>ooo</li>
            <li>xxx</li>
            <li>ooo</li>
        </ul>
        <div>
            <div class= "c1"></div>
            <div class= "c1"></div>
            <div class= "c1"></div>
        </div>
        <script type='text/javascript'>   //不写type也可以,默认就是‘text/javascript’
        
              var nid = document.getElementById('n1'); // 获取到n1对应的div标签
            console.log(nid.innerText);  // innerText获取标签里的内容,这里是c1
            nid.innerText = "vera";   // 给n1的标签设置内容
             var lis = document.getElementsByTagName('li'); // 获取到标签名为‘li’的标签
              for(var i in lis){    // 循环设置标签内容
                    var item = lis[i];
                 item.innerText = i;
            }
            var lis2 = document.getElementsByClassName('c1'); // 获取到class名为‘c1’的标签
            console.log(lis2);
            for(var i in lis2){     // 循环设置标签内容
                   var item = lis2[i];
                item.innerText = i;
            }
            </script>
    </body>
    </html>    

    网页及console显示结果:

    document.getElementsByName()小应用形式:

    <html>
        <head>
            <title> </title>
        </head>
            <body>
            <ul>
                <li>0</li>
                <li>1</li>
                <li>2</li>
                <li>3</li>
            </ul>
            <form>
                <p>用户名:<input name = 'username' value = '123'/></p>  
                <p>密码:<input name = 'pwd'value = '345'/></p>
            </form>
         <script type='text/javascript'>   //不写type也可以,默认就是‘text/javascript’
              var username = document.getElementsByName('username')[0];  //假若默认userName和pwd没有重复
              var pwd = document.getElementsByName('pwd')[0];
            console.log(username.value, pwd.value);   //.value获取input自闭合标签里的value值
    
              /*以li标签为例,dom中两种for循环结果*/        
              var lis = document.getElementsByTagName('li');
            //for(var i in lis){
              //    console.log(i);     //输出的值有 : 0,1,2,3,length,item,namedItem
              //}
              for(var i=0;i<lis.length;i++){
                  console.log(i);     // 输出的值:0,1,2,3
              }
              </script>
      </body>
    </html>    

    运行结果:

     

    /*一些鼠标事件*/

     /*dom之自增数字*/

    <html>
        <head>
            <meta charset='utf-8'/>
            <title></title>
        </head>
        <body>
            <div>
                <div id = "num" > 1 </div>
                <input type = "button" value = "+1" onclick="Add();"/>  
            </div>
            <script type = "text/javascript">
                function Add(){
                    var nid = document.getElementById('num');
                    var text = nid.innerText;
                    text = parseInt(text);
                    text += 1;
                    nid.innerText = text;
                }
    
            </script>
        </body>
    </html>
    自增数字

     /*dom之操作文本内容*/

    innerText : 获取标签中的文本内容
    innerHTML : 获取标签中间所有内容

    小例子:

    <html>
        <head>
            <title> </title>
        </head>
        <body>
            <div id = 'n1'>
                XXXOOO
                <h1>ssbbb</h1>
            </div>
            <script type = 'text/javascript'>
                var text = document.getElementById('n1');
                console.log(text.innerHTML);   //获取标签中间所有内容(包括里面包含的<h1>标签)
                console.log(text.innerText);   // 获取标签中所有的文本内容
            </script>
        </body>
    </html>    

    结果截图:

    /*小例子之用value获取文本*/

    <html>
    <head></head>
    <body>
        <!-- 特殊的自闭合标签用:value获取文本 -->
        <h3><input type  = 'button' value = '获取值' onclick = 'GetValue()'/></h3> <!--触发事件GetValue -->
        <select id = 'n3'>
            <option value = '1'> 北京 </option>
            <option value = '2'> 上海 </option>
            <option value = '3'> 广州 </option>
        </select>
        <script type = 'text/javascript'>
            function GetValue(){
                var obj = document.getElementById('n3');
                alert(obj.value);   // 利用.value获取文本
                obj.value = '2';  // 获取值后将其设置为2(上海)
            }
            
        </script>
    
    </body>
    </html>
    Velue获取文本

    /*小例子之搜索框文本提示*/

    <html>
    <head>
        <meta charset = 'UTF-8' >
        <title></title>
        <style>
            #search{
                opacity:0.37;
            }
        </style>
    </head>
    <body>
        <input type = 'text' id = 'search' value = '请输入关键字' onfocus = 'Focus();' onblur = 'Blur();' />
        <script type = 'text/javascript'>
            function Focus(){
                var nid = document.getElementById('search'); 
                var value = nid.value;           
                if(value == '请输入关键字'){     
                    nid.value = '';
                }
            }
            function Blur(){
                var nid = document.getElementById('search'); 
                var value = nid.value;           
                if(!value.trim()){      
                    nid.value = '请输入关键字';  
                }
            }
        </script>
    </body>
    </html>
    搜索框

     /*dom之创建标签*/

    /*通过字符串的方式创建*/

    <html>
        <head>
            <title> </title>
        </head>
        <body>
            <div id = 'con'></div>
            <a target='_blank' href = 'http://www.baidu.com' onclick = 'return AddElement();'>添加</a>  
         <!---先执行自定义事件再执行默认事件------>
            <script>
                function AddElement(){
                    //创建标签,添加至1中
                    var nid = document.getElementById('con');
                    var tag="<p><input type = 'text'/></p>";
                    //nid.innerHTML = tag;   //只能添加一个text框
                    //beforeBegin , afterBegin, beforeEnd, afterEnd
                    con.insertAdjacentHTML('beforeBegin',tag);  
                    //在前面添加text框,可以添加无数次(return 设置为true,每添加一次,就跳转一次百度)
                    return true;   //<!--返回的是true:执行完此函数会跳转到百度---->
                }
            </script>
        </body>
    </html> 

    /*通过对象的方式创建标签*/

    <html>
        <head>
            <title> </title>
        </head>
        <body>
            <div id = 'con'></div>
            <input type='button' value='添加' onclick = 'AddElement();'/>
            <script>
                    function AddElement(){
                    var createObj = document.createElement('a');   //创建元素
                    createObj.href = "http://www.baidu.com";    // 添加属性
                    createObj.innerText = "我是百度";
                    var createBr = document.createElement('br');
                    console.log(createObj);
                    console.log(createBr);
                    var nid = document.getElementById('con');
                    // nid.innerHTML = createObj;  //直接添加标签的方式,只能把"http://www.baidu.com"添加
                    nid.appendChild(createObj); //添加创建的标签(在孩子里添加元素)
                    nid.appendChild(createBr);
                }
            </script>
        </body>
    </html>

    /*操作(创建、修改)标签属性*/

    <html>
        <head>
            <title> </title>
        </head>
        <body>
            <div id = 'con'>xxx</div>
            <script>
                var nid = document.getElementById('con');
                nid.setAttribute('name','333');   // 设置属性name=2333
                nid.setAttribute('sb','2333');   // 设置自定义属性sb
                nid.style.fontSize='90px';   // 设置大小为90px
                // 在设置如font-size之类的属性时,写法为将-去掉,后一个单词首字母大写‘S’
                nid.className='ccc';   // 设置class名为ccc
                nid.setAttribute('class','ooo');   // 设置class名为ooo
                console.log(nid.getAttribute('name'));    //查找结果:333
                nid.removeAttribute('sb');    // 删除sb属性
            </script>
        </body>
    </html> 

    操作结果:

    /*dom之表单提交*/

    <html>
        <head>
            <title> </title>
            <style>
                .c{
                    padding:2px;
                    display:inline;
                    border:1px solid black;
                    background-color:yellow;
                }
            </style>
        </head>
        
        <body>
            <form id = 'fxx' action = "http://www.sogou.com/web" method = 'get'>
                <input name="query" type = "text"/>
                <!--<input type = 'submit' value = '提交'> // 传统提交方式-->  
                <div class='c' onclick = 'Submit();'> 提交 </div>  
            </form>
            <script>
                function Submit(){
                    document.getElementById('fxx').submit();     // js提交表单
                }
            </script>
        </body>
    </html>  
    dom骚操作
    <html>
        <head>
            <meta charset='utf-8'>
            <title> </title>
        </head>
        <body>
            <form id = 'fxx' action = "http://www.sogou.com/web" method = 'get'>
                <input name="query" type = "text"/>
                <input type = "submit" onclick = 'return MySubmit();'value = '提交'/>
    
            </form>    
            <script>
                function MySubmit(){
                    var q = document.getElementsByName('query')[0];
                    if(q.value.trim()){
                        return true;
                    }else{
                        alert('请输入文字内容');   // 提示
                        return false;
                    }
                }
            </script>
        </body>
    </html>    
    dom骚操作2号

    /*dom之小小功能*/

    /*confirm*/

    <html>
        <head>
            <meta charset='utf-8'>
            <title> </title>
        </head>
        <body>
            <input type = 'button' value = '来抚摸我啊' onmouseover = 'MyConfirm();'/>   <!--onmouseover 鼠标放在按键上的效果-->
            <script>
                function MyConfirm(){
                    var ret = confirm('SB');  // 通过confirm可以用户是点了确定(true)还是取消(false)
                }
            </script>
        </body>
    </html>    
    confirm

    /*定时器setInterval*/

    <html>
        <head>
            <meta charset='utf-8'>
            <title> </title>
        </head>
        <body>
            <script>
                // setInterval('操作','间隔时间');    //本质每多少时间创建一个线程
                setInterval("alert('ssbb')",1000);
            </script>
        </body>
    </html>   
    定时器

    /*会动的title*/

    <html>
        <head>
            <meta charset='utf-8'>
            <title>你是一个圈圈</title>
        </head>
        <body>
            <script>
                setInterval('Func();',1000);     // 每一秒执行一次
                function Func(){
                    var text = document.title;    // 获取题目
                    var firstChar = text.charAt(0);    // 获取第一个元素
                    var subText = text.substring(1,text.length);   // 子序列
                    var newTitle = subText + firstChar;
                    document.title = newTitle;
                }
            </script>
        </body>
    </html>
    一直动的title
    <html>
        <head>
            <meta charset='utf-8'>
            <title>你是一个圈圈</title>
        </head>
        <body>
            <input type ='button' onclick = "StopInterval();" value = '停下来'>
            <script>
                obj1 = setInterval('Func();',1000);     // 每一秒执行一次
                function StopInterval(){     // 当执行setInterval时,程序会有一个句柄(一个全局变量)
                    //清除定时器
                    clearInterval(obj1);    // 把句柄停止掉
                }
                function Func(){
                    var text = document.title;    // 获取题目
                    var firstChar = text.charAt(0);    // 获取第一个元素
                    var subText = text.substring(1,text.length);   // 子序列
                    var newTitle = subText + firstChar;
                    document.title = newTitle;
                }
            </script>
        </body>
    </html>    
    会停下来的title
    <html>
        <head>
            <meta charset='utf-8'>
            <title>你是一个圈圈</title>
        </head>
        <body>
            <input type ='button' onclick = "StopInterval();" value = '停下来'>
            <script>
                obj2 = setTimeout('Func();',10000);     // 只有一个线程(只执行一次操作)每一秒执行一次
                function StopInterval(){     
                    clearTimeout(obj2);  // 一旦执行就会一动不动
                }
                function Func(){
                    var text = document.title;    // 获取题目
                    var firstChar = text.charAt(0);    // 获取第一个元素
                    var subText = text.substring(1,text.length);   // 子序列
                    var newTitle = subText + firstChar;
                    document.title = newTitle;
                }
            
            </script>
        </body>
    </html>    
    只能动一次的title
  • 相关阅读:
    修改CentOS的yum源为国内yum镜像源
    CentOS7利用yum安装node.js
    Ansible系列(一):安装
    动态链接库引起的yum故障
    《C++ Templates: The Complete Guide》读书笔记
    Linux下编译clang、libcxx及其相关库——C++11环境搭建
    shell小工具:findstr 和 findfile
    关于newexpression、new operator、operator delete的总结
    Makefile编写示例:构建一个库
    无计划就不行动!
  • 原文地址:https://www.cnblogs.com/Vera-y/p/10445320.html
Copyright © 2011-2022 走看看