一、BOM

  (一)概念:是 Browser object model 的缩写,简称浏览器对象模型。

    BOM 提供了独立于内容而与浏览器窗口进行交互的对象

    由于 BOM 主要用于管理窗口与窗口之间的通讯,因此其核心对象是 window

  (二)Window窗口对象

  

    1.Window 对象是 BOM 的顶层(核心)对象,所有对象都是通过它延伸出来的,也可以称为 window 的子对象,由于window 是顶层对象,因此调用它的子对象时可以不显示的指明 window 对象。

  (三)Window 内置对象(location/history/navigator)及方法

    1. Location 对象

      1)Location 对象包含有关当前 URL (统一资源定位器)的信息,是 window 对象的一个部分,可通过 window.location 属性来访问

      2)href 属性:是一个可读可写的字符串,可设置或返回当前显示的文档的完整 URL,因此,我们可以通过为该属性设置新的 URL,使浏览器读取并显示新的 URL 的内容

      语法:location.href = URL;

         Demo:location.href = http://www.baidu.com;

      3)Reload()用于重新加载当前文档(刷新)

      语法:location.reload();

         Location.reload(true):刷新页面,不使用缓存

    2.History 对象

      1)History.back():载入历史列表中前一个网址,相当于按下“后退”按钮

      2)History.forward():载入历史列表中后一个网址(如果有的话),相当于按下“前进”按钮

      3)History.go():打开历史列表中一个网址

        注:要使用这个方法,必须在括号内指定一个正数或负数

    3.Navigator 对象

      1)appName:浏览器名称

      2)appVersion:浏览器版本

      3)platform:操作系统注:最新的浏览器已经全面放弃以上这些属性

      4)userAgent:用户代理信息,通过该属性可以获取浏览器及操作系统信息

    4.Window下的方法

      1)alert();警告框

      2)confirm();选择框

      3)prompt();提示输入框

      4)open();打开新窗口

      5)close();关闭当前窗口

二、onload 事件

三、定时器

  (一) SetInterval():(间歇式)计时器:按照指定的周期(以毫秒计)来调用函数或计算表达式

  (二) clearInterval():可取消由 setInterval()设置计时

  (三) setTimeout()(超时)定时器:用于在指定的毫秒数后调用函数或计算表达式

  (四) clearTimeout():可取消由 setTimeout()方法设置的定时

  (五) demo:1. 页面换背景

四、Window.onscroll 事件

  (一) Document.documentElement.scrollTop 代表垂直的滚动条,向下滚动的距离

  (二) Document.body.scrollTop//chrome 代表垂直的滚动条,向下滚动的距离

  (三) Document.documentElement.scrollLeft

  (四) Document.body.scrollLeft

  (五) 兼容写法:

    1. document.documentElement.scrollTop || document.body.scrollTop

    2. document.documentElement.scrollLeft || document.body.scrollLeft

四、DOM

  (一) 概念:DOM 即(Document Object Model)文档对象模型

  (二) 作用:通过 JavaScript 操作 DOM,可以重构整个 HTML 文档、添加、移除、改变或重排页面上的项目

  (三)DOM 的基本操作(查询、修改、创建、删除)

    查询

    1. getElementById():获取特定 ID 元素的节点。如果找到相应的元素则返回该元素的节点对象,如果不存在,则返回 null

    2. getElementsByTagName():获取相同元素的节点列表(对象伪数组)

    3. getElementsByName():获取相同名称的节点列表

    4. getElementsByClassName():获取相同 class 属性的节点列表(IE9 以下不兼容)

      function byClassName(obj,className){

        if(obj.getElementsByClassName){

          return obj.getElementsByClassName(className);

        }else{

          var arr = [];

          var eles = obj.getElementsByTagName('*');

          for(var i = 0,len = eles.length;i < len;i ++){

            if(eles[i].className === className){

              arr.push(eles[i]);

            }

          }

          return arr;

        }

      }

    5. document.documentElement:获取 html 的方法

    6. document.body:获取 body 的方法

    7. querySelector : 通过选择器获取一个元素(IE7 及以下不兼容),返回一个对象

    8. querySelectorAll : 通过选择器获取一组元素(IE7 及以下不兼容),返回一个集合

    创建

    1. createElement():创建一个元素节点

    2. createTextNode():创建一个文本节点

    3. 扩展:document.createDocumentFragment()创建文档碎片

    修改

    1. 父节点.replaceChild(newNode, oldNode) 方法用新节点替换某个子节点

     删除

    1. 父节点.removeChild(nodeChild):删除节点

    2.指定的节点.remove(node)

    扩展:追加节点

    1. appendChild():向指定节点的子节点列表末尾追加新的节点

  (四)DOM 元素类型(元素和文本)

    1.node 节点属性

    节点可以分为元素(标签)节点、属性节点和文本节点,而这些节点又有三个非常有用的属性,分别为:nodeName、nodeType 和 nodeValue.

    2.节点类型:元素 1 属性 2 文本 3

               

    扩展:克隆节点

    document.body.appendChild(oDiv.cloneNode(true));

    如果不加参数只克隆 父节点,不克隆子节点;如果加true参数,则克隆整个节点包含子节点

    扩展:获取属性节点

    

JS学习笔记Day9的更多相关文章

  1. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  2. Vue.js学习笔记(2)vue-router

    vue中vue-router的使用:

  3. JS 学习笔记--9---变量-作用域-内存相关

    JS 中变量和其它语言中变量最大的区别就是,JS 是松散型语言,决定了它只是在某一个特定时间保存某一特定的值的一个名字而已.由于在定义变量的时候不需要显示规定必须保存某种类型的值,故变量的值以及保存的 ...

  4. WebGL three.js学习笔记 使用粒子系统模拟时空隧道(虫洞)

    WebGL three.js学习笔记 使用粒子系统模拟时空隧道 本例的运行结果如图: 时空隧道demo演示 Demo地址:https://nsytsqdtn.github.io/demo/sprite ...

  5. WebGL three.js学习笔记 法向量网格材质MeshNormalMaterial的介绍和创建360度全景天空盒的方法

    WebGL学习----Three.js学习笔记(5) 点击查看demo演示 Demo地址:https://nsytsqdtn.github.io/demo/360/360 简单网格材质 MeshNor ...

  6. WebGL three.js学习笔记 创建three.js代码的基本框架

    WebGL学习----Three.js学习笔记(1) webgl介绍 WebGL是一种3D绘图协议,它把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的 ...

  7. vue.js 学习笔记3——TypeScript

    目录 vue.js 学习笔记3--TypeScript 工具 基础类型 数组 元组 枚举 字面量 接口 类类型 类类型要素 函数 函数参数 this对象和类型 重载 迭代器 Symbol.iterat ...

  8. 2019-4-29 js学习笔记

    js学习笔记一:js数据类型   1:基本数据类型       number类型(整数,小数)      String类型          boolean类型        NaN类型其实是一个nu ...

  9. 一点感悟:《Node.js学习笔记》star数突破1000+

    写作背景 笔者前年开始撰写的<Node.js学习笔记> github star 数突破了1000,算是个里程碑吧. 从第一次提交(2016.11.03)到现在,1年半过去了.突然有些感慨, ...

随机推荐

  1. Linux 环境 Intelij Idea 安装与快捷图标配置

    索引: 目录索引 参看代码 GitHub: intelij-idea.txt 一.Linux (DeepinOS) 环境 1.官网下载 ideaIU-.tar.gz 2.解压 .tar.gz -C ~ ...

  2. Linux 环境 Java JDK 安装&基本配置

    索引: 目录索引 参看代码 GitHub: jdk.txt 一.Linux (DeepinOS) 环境 1.官网下载 jdk-8u112-linux-x64.tar.gz 2.创建目录 mkdir - ...

  3. spark-2.4.0-hadoop2.7-安装部署

    1. 主机规划 主机名称 IP地址 操作系统 部署软件 运行进程 备注 mini01 172.16.1.11[内网] 10.0.0.11  [外网] CentOS 7.5 Jdk-8.zookeepe ...

  4. Vue学习之路1-集成环境安装

    1.前言 Vue 是一款友好的.多用途且高性能的javascript框架,与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用,它能够帮你创建可维护性和可测试性更强的代码库,Vue是渐进式的j ...

  5. JavaScript作用域链的理解

    前言 作用域是JavaScript一个很重要的概念,想要学好JavaScript就需要理解javascript作用域和作用域链的工作原理.这篇文章对JavaScript作用域链和作用域链做一个简单的介 ...

  6. kubernetes 集群安装etcd集群,带证书

    install etcd 准备证书 https://www.kubernetes.org.cn/3096.html 在master1需要安装CFSSL工具,这将会用来建立 TLS certificat ...

  7. linux-python3.8安装

    环境:  centos7.5 版本:python3.8 1.依赖包安装 yum -y install zlib-devel bzip2-devel openssl-devel ncurses-deve ...

  8. day 13 迭代器、可迭代对象、迭代器对象、生成器、生成器对象、枚举对象

    迭代器大概念 # 迭代器:循环反馈的容器(集合类型)# -- 不同于索引取值,但也可以循环的从容器对象中从前往后逐个返回内部的值​# 优点:不依赖索引,完成取值# 缺点:不能计算长度,不能指定位取值( ...

  9. 使用 Linux 文件恢复工具

    使用 Linux 文件恢复工具         Linux 文件恢复的原理 inode 和 block 首先简单介绍一下 Linux 文件系统的最基本单元:inode.inode 译成中文就是索引节点 ...

  10. Linux内存管理 (13)回收页面

    专题:Linux内存管理专题 关键词:LRU.活跃/不活跃-文件缓存/匿名页面.Refault Distance. 页面回收.或者回收页面也即page reclaim,依赖于LRU链表对页面进行分类: ...