• JavaScript之DOM操作


    什么是HTML DOM?

    1.HTML Document Object Model(文档对象模型)

    2.HTML DOM定义了访问和操作HTML的标准方法

    3.HTML DOM把HTML文档呈现为带有元素,属性和文本的树结构(树节点)

      

     一。获取元素节点  (当获取多个元素时,存为数组)

    1.直接查找:

        <div class="c1">
            <div id="i1">
                <a href="" class="c2-1" name="XXX"></a>
                <a href="" class="c2-2" name="XXX"></a>
            </div>
        </div>
    document.getElementById(“i1”)          id 
    document.getElementsByTagName(“a”)       标签
    document.getElementsByName(“XXX”)        name
    document.getElementsByClassName(“c2-1”)    class
    

    2.间接查找

        <div>
            <div id="i1">
                <a href="" class="c1-1">aaaaa</a>
                <a href="" class="c1-2">bbbbb</a>
            </div>
        </div>
        <div>
            <div id="i2">
                <a href="" class="c2-1">ccccc</a>
                <a href="" class="c2-2">ddddd</a>
            </div>
        </div>
        parentElement                   // 父节点标签元素
            var i1=document.getElementById(“i1”)
            i1.parentElement
        children                	      // 所有子标签
        firstElementChild                // 第一个子标签元素
        lastElementChild                // 最后一个子标签元素
        nextElementtSibling           // 下一个兄弟标签元素
        previousElementSibling      // 上一个兄弟标签元素    
    

      

     二。属性节点的操作

    1.对节点的类进行操作:  12.6

    tag.className => 直接整体做操作
    tag.classList.add('样式名')   添加指定样式
    tag.classList.remove('样式名')   删除指定样式
    

    2.获取文本节点的值:  

    	innerText    innerHtml    
    	value获取当前选中的value值
    		1.input   value获取当前标签中的值
    		2.select (selectedIndex)
    		3.textarea  
    	innerHTML 给节点添加html代码:
    		该方法不是w3c的标准,但是主流浏览器支持	
    		tag.innerHTML = “<p>要显示内容</p>”;
    

    =====================================================================  

     表格案例:

      

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    
    <body>
    <input type="button" value="全选" onclick="selectALL();"/>
    <input type="button" value="取消" onclick="cancelALL();"/>
    <input type="button" value="反选" onclick="ReverseALL();"/>
    <table border="1">
        <thead>
        <tr>
            <th>操作</th>
            <th>IP</th>
            <th>端口</th>
        </tr>
        <tbody id="info">
        <tr>
            <td><input type="checkbox"/></td>
            <td> </td>
            <td> </td>
        </tr>
        <tr>
            <td><input type="checkbox"/></td>
            <td> </td>
            <td> </td>
        </tr>
        <tr>
            <td><input type="checkbox"/></td>
            <td> </td>
            <td> </td>
        </tr>
        </tbody>
        </thead></table>
    </body>
    
    <script>
        function selectALL() {
            var myTodby = document.getElementById("info");
            var myTrs = myTodby.children;
            for(var i=0;i<myTrs.length;i++){
                var myInput=myTrs[i].children[0].children[0];
                myInput.checked = true;
            }
        }
            function cancelALL() {
                var myTodby = document.getElementById("info");
                var myTrs = myTodby.children;
                for (var i = 0; i < myTrs.length; i++) {
                    var myInput = myTrs[i].children[0].children[0];
                    myInput.checked = false;
                }
            }
            function ReverseALL() {
                var myTodby = document.getElementById("info");
                var myTrs = myTodby.children;
                for (var i = 0; i < myTrs.length; i++) {
                    var myInput = myTrs[i].children[0].children[0];
                    if(myInput.checked){
                        myInput.checked = false;
                    }else {
                        myInput.checked = true;
                    }
                }
            }
    </script>
    
    </html>
    

    =====================================================================

    模态框:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .one{
                position: fixed;
                top:0;
                left: 0;
                right: 0;
                bottom:0;
                background-color:black;
                opacity: 0.6;
            }
            .info{
                position: fixed;
                top: 50px;
                left: 400px;
                right: 400px;
                background-color: white;
                height: 100px;
                 200px;
            }
            .hide{
                display: none;
            }
            .show{
                display: block;
            }
        </style>
    </head>
    <body>
        <div>
            <input type="button" value="点击" onclick="showModel()">
        </div>
        <!--遮罩层-->
        <div class="one hide"></div>
    
        <div class="info hide">
            <p>
                <input type="text"/>
                <input type="text"/>
                <input type="button" value="确定">
                <input type="button" value="取消" onclick="hideModel()">
            </p>
        </div>
    </body>
        <script>
            function showModel() {
                var myone = document.getElementsByClassName("one")[0];
                var info = document.getElementsByClassName("info")[0];
                myone.classList.remove("hide");
                info.classList.remove("hide");
            }
            function hideModel() {
                var myone = document.getElementsByClassName("one")[0];
                var info = document.getElementsByClassName("info")[0];
                myone.classList.add("hide");
                info.classList.add("hide");
            }
        </script>
    </html>
  • 相关阅读:
    vue箭头函数问题
    JS函数知识点梳理
    因tensorflow版本升级ImportError: No module named 'tensorflow.models.rnn'
    数据库优化,以实际SQL入手,带你一步一步走上SQL优化之路!
    在 IntelliJ IDEA 中这样使用 Git,效率提升2倍以上
    百万级高并发mongodb集群性能数十倍提升优化实践
    阿里巴巴Java开发手册正确学习姿势是怎样的?刷新代码规范认知
    50道Redis面试题史上最全,以后面试再也不怕问Redis了
    没想到Spring Boot居然这么耗内存,有点惊讶
    源码角度分析-newFixedThreadPool线程池导致的内存飙升问题
  • 原文地址:https://www.cnblogs.com/yizhixiaowenzi/p/6440820.html
Copyright © 2020-2023  润新知