zoukankan      html  css  js  c++  java
  • BOM与DOM

    BOM和DOM和ECMAscript的关系:

     BOM是运行平台,BOM规则建立在ECMAscript的规则之上
     DOM是运行在平台上的页面
     ECMAscript是用来操作平台或运行在平台上的页面的工具

     BOM:浏览器对象模型(Browers Object MOdel)

    window是js中的顶层对象,所有的全局都属于window;window窗口:提供了浏览器的窗口之间的操作。

    window对象的常见方法:
        alert(要显示的文本); 弹出信息框
        prompt(提示对话框信息); 弹出输入框,点击确定,返回字符串,点击取消,返回null
        confirm(提示文字); 点击确定返回true,点击取消返回false  
        open(url,name,feature,replace);
            open('http://www.baidu.com','_blank','width=300,height=300')
                          //谷歌会默认把系统自动打开的新网页阻止掉,但不阻止通过事件打开的网页
        close();关闭浏览器。
    window对象下内置的子对象:
    history对象:该对象包含浏览器访问过的url。
            该对象的属性:
            history.length;返回历史记录的数量
            该对象的方法:
            history.back();后退,加载前一个url。
            history.forward();前进,需要后退一下之后,才有前进的方向
            history.go(num);参数为正,前进相应的数目,为负,后退相应的数目,为0,刷新
    location对象:包含当前url的相关信息,而history对象不能具体反映url的相关信息。
            该对象的属性:
            location.href;设置或返回完整的url
            location.search;返回url?后面的查询部分
            location.hash;是一个可读写的字符串,是url的锚部分(从#开始的部分)哈希
            该对象的方法:
            location.reload();刷新页面的方法,一般情况下,传递一个true,不使用缓存刷新。缓存?
            location.assign(url);加载新页面,当url为空字符时,加载当前页面
    window.onload / onscroll/onresize 事件
     onload当文档加载完成后执行一些操作
    1 window.onload = function(){
    2         console.log("页面加载完成")
    3     }
    onscroll当页面发生滚动时执行一些操作
    1 window.onload = function(){
    2         console.log(1)            //当页面发生滚动时,打印1
    3     }
    onresize当窗口大小发生改变时执行一些操作
    1 window.onresize = function(){
    2         console.log(1)            //当窗口大小发生改变时,打印1
    3     }

    DOM:文档对象模型(Document Object MOdel )

    改变元素的内容(innerHTML),属性(value),样式(width,height,background)
    DOM中的选择器

    元素节点选择器:

    id:返回的是单个对象;document.getElementById(   )

    class:返回的是数组对象,如果要使用其中的元素,通过索引解析;document.getElementsByClassName(   )

    tagname:返回的是数组对象,如果要使用其中的元素,通过索引解析;document.getElementsByTagName(   )

    name:返回的是数组对象,如果要使用其中的元素,通过索引解析;document.getElementsByName(     )

    querySelector:返回的是单个对象;document.querySelector(    )

    querySelectorAll:返回的是数组对象,如果要使用其中的元素,通过索引解析;document.querySelectorAll(   )

     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="utf-8" />
     5         <meta name="viewport" content="width=device-width, initial-scale=1">
     6         <title>选择器</title>
     7     </head>
     8     <body>
     9         <div id="box">1</div>
    10         <div id="box">2</div>
    11         <div id="box">3</div>
    12         <div class="msg">
    13             <div class="sbox">
    14                 <h2>标题3</h2>
    15                 <h2>标题4</h2>
    16             </div>
    17             <h2>标题1</h2>
    18             <h2>标题2</h2>
    19             
    20         </div>
    21         <div class="cont">4</div>
    22         <div class="cont">5</div>
    23         <div class="cont">6</div>
    24         <span>7</span>
    25         <span>8</span>
    26         <span>9</span>
    27         <input type="text" name="user">
    28         <input type="text" name="user">
    29         <input type="text" name="pass">
    30     </body>
    31     <script>
    32         //id
    33         var box = document.getElementById("box");
    34         console.log(box);
    35         //class
    36         var acont = document.getElementsByClassName("cont");
    37         console.log(acont);
    38         console.log(acont[0]);
    39         console.log(acont[0].innerHTML);
    40         console.log(acont.innerHTML);
    41         //tagName
    42         var aspan = document.getElementsByTagName("span");
    43         console.log(aspan);
    44         console.log(aspan[0]);
    45         //name
    46         var auser = document.getElementsByName("user");
    47         console.log(auser);
    48         //querySelector
    49         var ele = document.querySelector("#box");
    50         var ele = document.querySelector(".cont");
    51         var ele = document.querySelector("span");
    52         var ele =document.querySelector(".msg h2");
    53         var ele =document.querySelector(".msg>h2")
    54         console.log(ele);
    55         //querySelectorAll
    56         var ele = document.querySelectorAll("#box");
    57         var ele = document.querySelectorAll(".cont");
    58         var ele = document.querySelectorAll("span");
    59         var ele = document.querySelectorAll(".msg h2");
    60         var ele = document.querySelectorAll(".msg>h2");
    61         console.log(ele);
    62     // 父选子:获得子元素节点的集合,不包含空白节点
    63         var omsg = document.querySelector(".msg");
    64         console.log(omsg.children);
    65     // 子选父:获得父元素节点
    66         var osbox = document.querySelector(".sbox");
    67         console.log(osbox.parentNode);
    68     // 第一个子
    69         var omsg = document.querySelector(".msg");
    70         console.log(omsg.firstElementChild)
    71     // 最后一个子
    72         var omsg = document.querySelector(".msg");
    73         console.log(omsg.lastElementChild)
    74     // 上一个兄弟
    75         var omsg = document.querySelector(".msg");
    76         console.log(omsg.previousElementSibling)
    77     // 下一个兄弟
    78         var omsg = document.querySelector(".msg");
    79         console.log(omsg.nextElementSibling)
    80     </script>
    81 </html>

    其他节点选择器:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     6     <meta http-equiv="X-UA-Compatible" content="ie=edge">
     7     <title>Document</title>
     8 </head>
     9 <body>
    10     <span>qwe</span>
    11     <div class="box"><span>1</span>
    12         <p>2</p>
    13         hello
    14         <!-- 这是注释 -->
    15         <em>3</em>
    16     </div>
    17     <span>zxc</span>
    18 </body>
    19 <script>
    20     // 其他节点选择器:
    21         // 关系:
    22         // 父选子:获得所有子节点的集合,包括空白节点
    23             // var obox = document.querySelector(".box")
    24             // console.log(obox.childNodes)
    25         // 上一个兄弟:
    26             // var obox = document.querySelector(".box")
    27             // console.log(obox.previousSibling)
    28         // 下一个兄弟:
    29             // var obox = document.querySelector(".box")
    30             // console.log(obox.nextSibling)
    31         // 第一个子:
    32             // var obox = document.querySelector(".box")
    33             // console.log(obox.firstChild)
    34         // 最后一个子:
    35             var obox = document.querySelector(".box")
    36             console.log(obox.lastChild)
    37 </script>
    38 </html>

    DOM属性的基本操作:

    元素的属性:内置、非内置

    非内置属性需要通过一些节点的方法进行操作,注意:节点的方法,前缀一定是节点
        getAttribute() :获取 元素的属性
        setAttribute():设置/修改 元素的属性,低版本的IE不兼容;接收两个参数,属性名和属性值
        removeAttribute():删除 元素的属性,低版本的IE不兼容
    节点:
    通过遍历所有子节点,将空白节点过滤掉,得出所有的元素节点;
     文档节点:整个文档;ownerDocument:获取该节点的文档根节点,相当与 document
    元素节点:每个HTML标签
    文本节点:包含在HTML元素中的文本
    属性节点:每一个HTML属性;attributes:获得所有属性节点,返回一个数组
    注释节点:注释
                     节点类型(nodeType)        节点名字(nodeName)       节点值(nodeValue)
      元素节点         1                                        标签名                            null
      文本节点         3                                          #text                             文本
      注释节点         8                                     #comment                    注释的文字
      文档节点         9                                      #document                       null
      属性节点         2                                        属性名                           属性值
    DOM元素的基本操作
     创建:createElement()  配合  appendChild()    将创建好的元素,插入到某个标签内的最后
     删除:removeChild()  配合  parentNode;  remove()    直接删除当前元素
        document.body.removeChild(div);
    样式:
    1  获取非行内样式(兼容问题)
    2     function getStyle(obj,attr){             //获取非行间样式,obj是对象,attr是值
    3         if(obj.currentStyle){                //针对ie获取非行间样式
    4             return obj.currentStyle[attr];
    5         }else{
    6             return getComputedStyle(obj,false)[attr];   //针对非ie
    7         };
    8     };

    尺寸类样式:

     clientWidth/clientHeight:可视内容区域的宽高

    scrollWidth/scrollHeight:包括滚动区域的宽高

    offsetWidth/offsetHeight:可视边框区域的宽高

    offsetLeft/offsetTop:元素相对于包含块偏移的位置

    scrollLeft/scrollTop:滚动的left和top

    offsetParent:获取当前元素的包含块

  • 相关阅读:
    SQL通配符
    全角半角内容转换
    使用merge into 来更新目标表的个别字段
    数据库分库分表思路
    impdp导入错误ORA-14460
    CentOS只有GNOME桌面,没有GNOME经典桌面
    sqlserver进行发布订阅时提示实例上未安装复制组件解决方法
    SQLSERVER发布订阅,超详细
    sqlserver查询锁以及解锁
    sqlserver调用java文件
  • 原文地址:https://www.cnblogs.com/cx1215/p/11480345.html
Copyright © 2011-2022 走看看