zoukankan      html  css  js  c++  java
  • Python 复习笔记 dom

    JavaScript:
      https://www.cnblogs.com/otome/p/12588542.html

    jquery:

      https://www.cnblogs.com/otome/p/12682354.html

    Dom(document)
    1.查找
      1.直接查找:
        document.getElementById 根据ID获取一个标签
        document.getElementsByName 根据name属性获取标签集合
        document.getElementsByClassName 根据class属性获取标签集合
        document.getElementsByTagName 根据标签名获取标签集合
      2.间接查找:
        通过一个标签找出各种关系的标签:
        节点:(所有内容)

    1 parentNode // 父节点
    2 childNodes // 所有子节点
    3 firstChild // 第一个子节点
    4 lastChild // 最后一个子节点
    5 nextSibling // 下一个兄弟节点
    6 previousSibling // 上一个兄弟节点    

      元素:(被括号括起来的内容)

    1 parentElement // 父节点标签元素
    2 children // 所有子标签
    3 firstElementChild // 第一个子标签元素
    4 lastElementChild // 最后一个子标签元素
    5 nextElementtSibling // 下一个兄弟标签元素
    6 previousElementSibling // 上一个兄弟标签元素

      节点和元素的区别:
        <div>
          111
          <a>1<a>
        </div>
      节点包括111和<a>1<a>,元素只有<a>1<a>

    2.操作:
      1.ID
        1.获得标签内容
          1.通过ID查找到标签:t=document.getElementById("")
          2.通过标签得到间接寻找相关节点:t.childNodes、t.parentNode
          3.获得标签的值: t.value
          4.获得标签的文本内容:t.innertext、t.innerHTML(

    如:<a>一<span>111</span>二<a>)
    t.innertext ————> 一111二
    t.innerHTML ————> 一<span>111</span>二

        2.修改标签内容
          t.value = "66"

      2.class
        1.寻找标签,获得标签列表:t=document.getElementsByTagName("div")
        2.切片,对目的对象进行操作:(当然,如果知道ID,就找得更快了)
        t[0].classList、t[0].classList.add('c4')、t[0].classList.remove()
        3.样式
          同理:也可以对标签的其他样式进行修改:
          如t.style.color="red",如果带“-”:像background-color就变成t.style.backgroundColor,"-"后的C变成大写的
        4.属性(<div id='i1' name='haha'>)

          t.getAttribute(name) 获得属性
          t.setAttribute("name","xixi") 修改属性
          t.removeAttribute("name") 移除属性

          可以用来控制选择框的是否选中,即控制checked

    PS:当在网页上勾选单选框时,不会在标签中增加 checkde=checked,所以不能通过获取属性来判断,而是直接用
    对象.checked == true or false 来改变单选框的是否选中
    最后一点,因为两个方法都能改变,所以两种方法要同时兼顾。当然,最好的方法就是统一使用 对象.checked 来改变

      3.标签操作
        1.创建标签
          方法一:创建对象

    var tag = document.createElement('a')
    tag.innerText = 'haha'
    tag.className = 'c1'
    tag.href = "http://www.baidu.com"

          方法二:创建字符串
            var tag = "<a class='c1' href='http://www.baidu.com'>haha</a>"
        2.添加标签
          方法一:创建对象
            xx.appendChild(tag)     默认加到该标签里面的最后
            xx.insertBefore(tag,xx.children[1]) 加到指定标签的前面
            xx.insertAdjacentElement("afterBegin",document.createElement('p'))
          方法二:创建字符串
            xx.insertAdjacentHTML("beforeEnd",tag); 当成标签传进去
            xx.insertAdjacentText("beforeEnd",tag); 当成文本传进去
            第一个参数只能是

            “afterBegin”在标签里面的最前面添加,是标签子级;
            “beforeBegin”在标签外面的前面添加,与标签同级;

            “afterEnd”在标签外面的后面添加,与标签同级;
            “beforeEnd”在标签里面的最后面添加,是标签的子级

      4.位置
        1.clientHeight 可见区域:height+padding
        2.clientTop border高度

        3.offsetHeight 可见区域:height+padding+border
        4.offsetTop 距离上级定位标签的高度


        5.scrollHeight 全文高:height+padding
        6.scrollTop 滚动高度

    PS:谷歌浏览器使用document.body.scrollTop一直显示0,所以使用document.documentElement.scrollTop
      跟程序开头的<!DOCTYPE html>有关,各浏览器下 scrollTop的差异 原文链接:https://blog.csdn.net/sleepwalker_1992/article/details/80677845
        IE:
          对于没有doctype声明的页面,使用 document.body.scrollTop 或 document.documentElement.scrollTop;
          对于有doctype声明的页面,则使用 document.documentElement.scrollTop;

        Chrome、Firefox:
          对于没有doctype声明的页面,使用 document.body.scrollTop 来获取 scrollTop高度 ;
          对于有doctype声明的页面,则使用 document.documentElement.scrollTop;

        Safari:
          safari 比较特别,有自己获取scrollTop的函数 : window.pageYOffset ;
          所以可以合在一起判断window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft
      5.提交表单
        之前是<input type='submit' value='提交'>来提交当前form的表单
        现在可以用DOM来提交

            <!DOCTYPE html>
            <html lang="en">
            <head>
                <meta charset="UTF-8">
                <title>Title</title>
            </head>
            <body>
                <form id="i1">
                    <input type="text">
                    <input type="submit"value="提交">
                    <a onclick="Submit()">提交</a>
                </form>
    
                <script>
                    function Submit() {
                        var tag=document.getElementById('i1');
                        tag.submit();
                    }
                </script>
            </body>
            </html>
    提交表单

      6.其他操作:
        1.console.log() 输出框,把括号中的内容输出到网页上
        2.alert() 弹出框
        3.confirm() 确认框,有返回值,为false或true


        //URL和刷新
        4.location.href 获取URL
        5.location.href="URL" 重定向
        6.location.reload() 重新加载


        //定时器:
        7.setInterval 多次定时器
        8.clearInterval
        9.setTimeOut 单次定时器
        10.clearTimeOut

      7.事件的绑定
        特殊事件:
          1.this,指向当前触发事件的标签
          2.全局事件绑定 window.onkeydown=function(){}
          3.event,特殊参数,包含事件相关内容(跟之前的pygame的event差不多)
          4.默认事件
          如:

          (a标签,跳转)(submit标签,提交).....
            如果绑定事件,先执行自定义事件,再执行默认事件
            <input type="submit" value="提交" onclick="return Submit()">
            加上return的话,后面的Submit()函数如果是true就会执行后面的事件,如果是false就不执行
          (checkbox,勾选)..
            如果绑定事件,先执行默认事件,再执行自定义事件

    实际操作的一些例子:

    1.搜索框

        1.创建输入框
        2.给输入框绑定事件

        3.在script上定义事件的内容

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Title</title>
     6 </head>
     7 <body>
     8   //onfocus表示鼠标的焦点在对话框 onblur鼠标的焦点移出对话框
     9     <input id="i1" type="text" value="请输入内容" onfocus="f1();"onblur="f2();">
    10     <script>
    11         function f1() {
    12           var  t=document.getElementById("i1");
    13           var val=t.value
    14             if (val=="请输入内容"){t.value=""}
    15         }
    16          function f2() {
    17           var t=document.getElementById("i1");
    18           var val=t.value;
    19           // 去空格,看字符长度
    20             if (val.trim().length==0){t.value="请输入内容"}
    21         }
    22     </script>
    23 </body>
    24 </html>
    弹出框

    2.弹出框

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Title</title>
     6     <style>
     7         body{
     8             margin: 0;
     9         }
    10       .bj{
    11           height: 2000px;
    12            100%;
    13           background-color: #9E9EA6;
    14       }
    15       .hide{
    16           display: none;!important;
    17       }
    18         .shade{
    19             position: fixed;
    20             top:0;
    21             bottom: 0;
    22             left: 0;
    23             right: 0;
    24             background-color: #5ab2ce;
    25             z-index: 100;
    26         }
    27         .modal{
    28              400px;
    29             height: 400px;
    30             position: fixed;
    31             background-color: white;
    32             top: 50%;
    33             left: 50%;
    34             margin-top:-200px ;
    35             margin-left: -200px;
    36             z-index: 101;
    37         }
    38     </style>
    39 </head>
    40 <body>
    41     <div class="bj">
    42         <input type="button" value="点我" onclick="f1()">
    43         <div id="shade" class="shade hide"></div>
    44         <div id="modal" class="modal hide">
    45             <a href="javascript:void(0);"onclick="f2()">取消</a>
    46         </div>
    47     </div>
    48     <script>
    49         function f1() {
    50             var t1 = document.getElementById("shade");
    51             var t2 = document.getElementById("modal");
    52             t1.classList.remove("hide");
    53             t2.classList.remove("hide");
    54         }
    55         function f2() {
    56             var t1 = document.getElementById("shade");
    57             var t2 = document.getElementById("modal");
    58             t1.classList.add("hide");
    59             t2.classList.add("hide");
    60         }
    61     </script>
    62 </body>
    63 </html>
    弹出框

    3.点赞(绑定事件)

    1.this,指向当前触发事件的标签, function(this),可以传入这个标签
    2.setInterval(匿名函数,时间单位ms) 创建定时器,会返回一个值,inter=setInterval()
    3.clearInterval删除定时器,传入创建时返回的值,clearInterval(inter)
    4.removeChild删除子标签

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Title</title>
     6     <style>
     7         .item{
     8             padding: 50px;
     9             position: relative;
    10         }
    11         .item span{
    12             position: absolute;
    13             top: 42px;
    14             left: 83px;
    15             opacity: 1;
    16         }
    17     </style>
    18 </head>
    19 <body>
    20     <div class="item">
    21         <a onclick="f1(this)">赞!</a>
    22     </div>
    23     <div class="item">
    24         <a onclick="f1(this)">赞!</a>
    25     </div>
    26     <div class="item">
    27         <a onclick="f1(this)">赞!</a>
    28     </div>
    29     <div class="item">
    30         <a onclick="f1(this)">赞!</a>
    31     </div>
    32     <script>
    33         function f1(ths) {
    34             var top=42;
    35             var left=83;
    36             var op=1;
    37             var fontSize=18;
    38             var tag = document.createElement('span');
    39             tag.innerText='+1';
    40             tag.style.top=top+'px';
    41             tag.style.left=left+'px';
    42             tag.style.fontSize=fontSize+'px';
    43             tag.style.opacity=op;
    44             ths.parentElement.appendChild(tag);
    45 
    46             var inter=setInterval(function ()
    47                 {
    48                 top-=10;
    49                 left+=10;
    50                 op-=0.1;
    51                 fontSize+=5;
    52                 tag.style.top=top+'px';
    53                 tag.style.left=left+'px';
    54                 tag.style.fontSize=fontSize+'px';
    55                 tag.style.opacity=op;
    56                 if (op<=0.2){
    57                     clearInterval(inter);
    58                     ths.parentElement.removeChild(tag)
    59                              }
    60                 }
    61             ,50)
    62         }
    63     </script>
    64 </body>
    65 </html>
    66 
    67 点赞例子
    点赞(绑定事件)
  • 相关阅读:
    (原创)代码分析-DataGrid实现增删(带提示)改和分页
    (原创)webform页面间传值的特殊方法
    (原创)如何把数据放到web不能访问的文件夹中并给用户下载?
    MediaWiki如何重置用户密码
    伟大的程序员是怎样炼成的?
    Java多线程(一)、多线程的基本概念和使用
    Android杂谈Activity、Window、View的关系
    Android LayoutInflater学习
    10条不可不知的手机礼仪 看看你犯过哪几项?
    Java支持的字符集[Code]
  • 原文地址:https://www.cnblogs.com/otome/p/12876202.html
Copyright © 2011-2022 走看看