zoukankan      html  css  js  c++  java
  • 第一篇 dom

    文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口。它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式。我们最为关心的是,DOM把网页和脚本以及其他的编程语言联系了起来。DOM属于浏览器,而不是JavaScript语言规范里的规定的核心内容。

     一、查找元素

    1、直接查找   找到的氛围两类  第一是元素、第二是元素集合

    document.getElementById             根据ID获取一个标签
    document.getElementsByName          根据name属性获取标签集合
    document.getElementsByClassName     根据class属性获取标签集合
    document.getElementsByTagName       根据标签名获取标签集合

    2、间接查找

    parentNode          // 父节点
    childNodes          // 所有子节点
    firstChild          // 第一个子节点
    lastChild           // 最后一个子节点
    nextSibling         // 下一个兄弟节点
    previousSibling     // 上一个兄弟节点
     
    上面node包含所有文本
    下面的只包含说哦有标签
    parentElement
    // 父节点标签元素 children // 所有子标签 firstElementChild // 第一个子标签元素 lastElementChild // 最后一个子标签元素 nextElementtSibling // 下一个兄弟标签元素 previousElementSibling // 上一个兄弟标签元素

    如果一个标签的nodeType等于1就说明这个标签里面没有文本内容
    如果一个标签的nodeType等于3,就说明这个标签里面包含的有文本内容

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title></title>
    </head>
    <body>
    <div>
    123
    <div class="c1">divvvvv</div>
    <div class="c1" id="il">
    <p>ppppp</p>
    <div name="n1">
    <span>span</span>
    </div>

    <div name="n1">
    <a>1</a>
    <a>11111</a>
    </div>
    </div>
    <div class="c1">c111111111</div>
    </div>
    </body>
    <script>
    var li=document.getElementById("il");
    var p1=li.parentNode;
    var p2=li.parentElement;

    //console.log(li)
    //console.log(eles_nodes)

    var elees_node= p1.childNodes; //含文本的所有标签
    for(var j=0;j<elees_node.length;j++){
    var current_node=elees_node[j];
    if (current_node.nodeType==1){   //这里判断,输出current_node中不包含文本内容的标签
    console.log(elees_node[j])
    }
    }

    </script>

    </html>

    二、操作

    1、内容

    1 innerText   文本
    2 outerText
    3 innerHTML   HTML内容
    4 innerHTML   
    5 value       获取或者赋值表单标签中的值

    下面例子

     

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    <a href="http://www.baidu.com">百度<span>666</span></a>
        <input id="txt" type="text"/>
        <select id="sel">
            <option value="1">上海</option>
            <option value="2">北京</option>
        </select>
    <script>
        var obj=document.getElementsByTagName("a");
    //    alert(obj.innerTextr);   //获取文本信息
    //    alert(obj.innerHTML);   //获取标签内容
    
        //获取表单中的值
        var val=document.getElementById("txt").value;
        console.log(val);
        
        //更改值
        obj.innerText='123';
        obj.innerHTML="<p>123</p>"
    </script>
    </body>
    </html>

    2、class操作

    1 obj.className  以字符串形式获取样式
    2 obj.classList     所有的样式放到列表中
    3 obj.classList.remove   移除样式
    4 obj.classList.add   添加样式

    例子:实例模态多画框

     

    点击取消又会回到上图一

    代码如下:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title></title>
     6     <style>
     7         .hide{
     8             display: none;
     9         }
    10         .c1{
    11             background-color: papayawhip;
    12             position: fixed;
    13             top: 0;
    14             left: 0;
    15             right: 0;
    16             bottom: 0;
    17             background: rgba(0,0,0,.4);
    18             z-index: 2;
    19         }
    20         .c2{
    21             position: fixed;
    22              400px;
    23             height: 300px;
    24             background-color: white;
    25             top: 50%;
    26             left: 50%;
    27             margin-top: -150px;
    28             margin-left: -200px;
    29             z-index: 3;
    30         }
    31 
    32     </style>
    33 </head>
    34 <body>
    35     <div>
    36         <table>
    37             <tr>
    38                 <td>注册</td>
    39                 <td>登录</td>
    40                 <td><input type="button" value="点我" onclick="show()"/></td>
    41             </tr>
    42             <tr>
    43                 <td>1</td>
    44                 <td>2</td>
    45                 <td><input type="button" value="点我"/></td>
    46             </tr>
    47             <tr>
    48                 <td>1</td>
    49                 <td>2</td>
    50                 <td><input type="button" value="点我"/></td>
    51             </tr>
    52         </table>
    53     </div>
    54     <div id="shade" class="c1 hide" ></div>
    55     <div id="modal" class="c2 hide">
    56         <p>密码:<input type="text"/></p>
    57         <p>密码:<input type="password"/></p>
    58         <p>
    59             <input type="button" value="确定"/>
    60             <input type="button" value="取消" onclick="Hide()"/>
    61         </p>
    62     </div>
    63 <script>
    64     function show(){
    65         document.getElementById("shade").classList.remove("hide");
    66         document.getElementById("modal").classList.remove("hide");
    67     }
    68     function Hide(){
    69         document.getElementById("shade").classList.add("hide");
    70         document.getElementById("modal").classList.add("hide");
    71     }
    72 </script>
    73 
    74 </body>
    75 </html>
  • 相关阅读:
    Zookeeper系列二:分布式架构详解、分布式技术详解、分布式事务
    Zookeeper系列一:Zookeeper介绍、Zookeeper安装配置、ZK Shell的使用
    Mysql系列九:使用zookeeper管理远程Mycat配置文件、Mycat监控、Mycat数据迁移(扩容)
    Mysql系列八:Mycat和Sharding-jdbc的区别、Mycat分片join、Mycat分页中的坑、Mycat注解、Catlet使用
    Mysql系列七:分库分表技术难题之分布式全局唯一id解决方案
    Mysql系列五:数据库分库分表中间件mycat的安装和mycat配置详解
    学习Mysql过程中拓展的其他技术栈:Docker入门介绍
    学习Mysql过程中拓展的其他技术栈:设置linux虚拟机的固定ip和克隆linux虚拟机
    Mysql系列四:数据库分库分表基础理论
    Mysql系列三:Centos6下安装Mysql和Mysql主从复制的搭建
  • 原文地址:https://www.cnblogs.com/pyrene/p/6597699.html
Copyright © 2011-2022 走看看