window对象

  所有浏览器都支持window对象,他表示浏览器窗口.

  全局变量是window对象的属性.全局函数是window对象的方法.

  window的常用方法:

    window.innerHeight  ---> 浏览器窗口的内部高度.

    window.innerWidth  ---> 浏览器窗口的内部宽度

    window.open()  ---> 打开新窗口

    window.clode()  ---> 关闭当前窗口

1. BOM

  1. location

    1. location.href

  获取当前页面的URL.

 location.href

 >>> "https://mirrors.tuna.tsinghua.edu.cn/"

    2. location.href = 'URL'

  跳转到指定的URL页面.注意URL必须带有https://,否则将会把url拼接到原url上进行查找.

 location.href='https://000AV.ORG';

    3. location.reload()

   重新加载页面,也可以理解为全局刷新页面.

 location.reload()

  

  弹窗:

  confirm, 括号中的参数为弹窗时显示的内容,一位参数.

 confirm('谁是世界上最帅的人?')

 >>> false

 confirm('谁是世界上最帅的人?')

 >>> true

  弹窗结果:

  当选择取消时,返回值为false,当选择确定时,返回值为true.

  

  prompt,两位参数,第一位为问题的内容,第二位为输入框默认显示的内容.返回值为弹窗中输入的内容.

 prompt('谁才是世界上最帅的人?', '当然是你呀!')

 >>> "当然是你呀!"

  2. 计时相关

    1. 指定时间之后做一件事情

      var t1 = setTimeout(要做的事情, 毫秒单位时间)

      clearTimeout(t1)  ---> 清除设置的定时器

 setTimeout(function(){alert('你好帅呀')}, 3000)

弹窗:

  上述代码为延迟3000毫秒执行内部函数的内容,即弹出上边的窗口.

  PS: 1秒 = 1000毫秒

  当想取消延迟执行的内容时,使用clearTimeout().

 var t = setTimeout(function(){alert('你好帅呀')}, 3000);

 >>> undefined

 clearTimeout(t)

 >>>undefined

    2. 每隔一段时间做一件事情

      var t2  = setInterval(要做的事情, 毫秒单位时间)

      clearInterval(t2)  ---> 清除设置的定时器

  每间隔3秒执行一次函数.

 setInterval(function(){console.log('你是世界上最帅的人!!!')}, 3000)

 >>> 你是世界上最帅的人!!!

  想结束函数式,使用clearInterval().

 t = setInterval(function(){console.log('你是世界上最帅的人!!!')}, 3000);

 >>> 3 你是世界上最帅的人!!!

 clearInterval(t)

 >>> undefined

2. DOM

  1. DOM的概念

    DOM是一套对文档的内容进行抽象和概念化的方法.当网页被加载时,浏览器会创建页面的文档对象模型.

  2. 查找标签

    1. 直接查找

      document.getElementById  // 根据ID获取一个标签

 document.getElementById('666')

 >>> <div id=​"666" class=​"te">​</div>​

      document.getElementsByClassName  // 根据类class属性获取标签

 document.getElementsByClassName('te')

 >>> HTMLCollection(4) [div#666.te, div#667.te,div#668.te, div#669.te]

      分析: 使用类标签可以获得对个标签,所以使用elements.

      document.getElementsByTagName  // 根据标签名获得标签集合

 document.getElementsByTagName('div')

 >>> HTMLCollection(4) [div#666.te, div#667.te, div#668.te, div#669.te]

    直接查找时,括号中的内容必须带引号.

    2. 间接查找

      parentElement  父节点标签元素

 var t = document.getElementById('668')
t.parentElement

  结果:

      children  所有子标签

 var t = document.getElementById('668')
t.children

  结果:

       firstElementChild  第一个子标签元素

 document.getElementById('668').firstElementChild

  结果:

      lastElementChild  最后一个子标签元素

 document.getElementById('668').firstElementChild

  结果:

      nextElementSibling  下一个兄弟标签元素

 document.getElementById('02').nextElementSibling

  结果:

      previousElementSibling  上一个兄弟标签元素

 document.getElementById('02').previousElementSibling

  结果:

  3. 标签操作

  获取标签的文本值:

 document.getElementById('668').innerText

  结果:

给标签文本赋值:innerText = '字符串'

 var t = document.getElementById('668');
t.innerText = '<span>也许我们从未成熟</span>'

  结果:

赋值标签内容innerHTML='标签字符串':

 var t = document.getElementById('668');
t.innerHTML = '<span>也许我们从未成熟</span>'

结果:

获取标签内容innerHTML:

 document.getElementById('668').innerHTML

    1. 创建标签

 var new0 = document.createElement('span')  // 创建空白标签
new0.innerText = '望着大河弯弯 终于敢放胆' // 给空白标签赋值
 document.getElementById('668').insertBefore( new0, document.getElementById('04'))

  结果:

    2. 把标签添加到文档中

  往某个标签之前插入标签:

    ;选定的容器标签.insertBefore(添加的标签, 定位标签)

 document.getElementById('668').insertBefore( new0, document.getElementById('04'))

结果:

  追加一个子节点(作为最后的子节点)

    选定的容器标签.appendChild(添加的标签)

 var t = document.createElement('span');
t.innerText = '嘻皮笑脸 面对 人生的难';
document.getElementById('04').append(t)

  结果:

    3. 删除标签

  获得要删除的元素,通过元素调用删除

  removeChild(要删除的节点)

 document.getElementById('668').removeChild(document.getElementById('04'))

  删除的内容:

  4. 操作标签的属性

    1.  设置属性值

  setAttribute 设置标签属性,有则覆盖,无则添加.
 var t = document.getElementById('668');
t.setAttribute('age', 18)

  2. 获取属性值

getAttribute  获取属性值
 var t = document.getElementById('668');
t.getAttribute('age')

  获取到了返回属性对应的值,获取不到返回null.

    3. 删除属性

  remove  删除属性

var t = document.getElementById('668');
t.removeAttribute('age')
 // 自带的属性还可以直接.属性名来获取和设置
imgEle.src
imgEle.src="..."

  

  5. 获取输入标签的值

    1. 获取值

    只有使用getElementById获得标签使用.value可以去到值

    该方法适用于input select textarea标签

var t = document.getElementById('668');
t.value

    2. 设置值

var t = document.getElementById('668');
t.value = '字符串'

  6. 操作标签的样式

    1. 操作class

  获取标签的属性值  className

 var t = document.getElementById('666');
t.className >>> "te t1 t2 t3"

  删除指定类 classList.remove('类名')

 var t = document.getElementById('666');
t.classList.remove('t3')
classList.contains(cls)  存在返回true,否则返回false
 var t = document.getElementById('666');
t.classList.contains('t3') >>> false t.classList.contains('t2') >>> true
classList.toggle(cls)  存在就删除,否则添加
 t.classList.toggle('t3')
true
t.classList.toggle('t3')
false

  返回值为true时为添加属性,返回值为false是为删除属性.

    2. 操作CSS属性

  JS操作CSS属性的规律:

  1.对于没有中横线的CSS属性一般直接使用style.属性名即可。

 obj.style.margin
obj.style.width
obj.style.left
obj.style.position

  2.对含有中横线的CSS属性,将中横线后面的第一个字母换成大写即可

 obj.style.marginTop
obj.style.borderLeftWidth
obj.style.zIndex
obj.style.fontFamily

  7. 事件

    1. 常用的事件

 onclick        当用户点击某个对象时调用的事件句柄。
ondblclick 当用户双击某个对象时调用的事件句柄。 onfocus 元素获得焦点。
onblur 元素失去焦点。 应用场景:用于表单验证,用户离开某个输入框时,代表已经输入完了,我们可以对它进行验证.
onchange 域的内容被改变。 应用场景:通常用于表单元素,当元素内容被改变时触发.(select联动) onkeydown 某个键盘按键被按下。 应用场景: 当用户在最后一个输入框按下回车按键时,表单提交.
onkeypress 某个键盘按键被按下并松开。
onkeyup 某个键盘按键被松开。
onload 一张页面或一幅图像完成加载。
onmousedown 鼠标按钮被按下。
onmousemove 鼠标被移动。
onmouseout 鼠标从某元素移开。
onmouseover 鼠标移到某元素之上。 onselect 在文本框中的文本被选中时发生。
onsubmit 确认按钮被点击,使用的对象是form。

    2. 绑定事件的方式

  方式一:

<div id="d1" onclick="changeColor(this);">点我</div>
<script>
function changeColor(ths) {
ths.style.backgroundColor="green";
}
</script>

方式二(常用):

 <div id="d2">点我</div>
<script>
var divEle2 = document.getElementById("d2");
divEle2.onclick=function () {
this.innerText="呵呵";
}
</script>

    3. this

this是实参,表示触发事件的当前元素。

函数定义过程中的ths为形参。

通俗点说就是谁触发的事件,this就是谁.

BOM、DOM的更多相关文章

  1. JS中的函数、Bom、DOM及JS事件

    本期博主给大家带来JS的函数.Bom.DOM操作,以及JS各种常用的数据类型的相关知识,同时,这也是JavaScript极其重要的部分,博主将详细介绍各种属性的用法和方法. 一.JS中的函数 [函数的 ...

  2. 从零开始的JS生活(二)——BOM、DOM与JS中的事件

    上回书说道,JS中变量.运算符.分支结构.循环和嵌套循环等内容.本回就由本K给大伙唠唠JS中的BOM.DOM和事件. 一."花心大萝卜"--BOM 1.震惊,FFF团为何对BOM举 ...

  3. JavaScript(核心、BOM、DOM)

    http://www.flyne.org/article/407 JavaScript(核心.BOM.DOM) JavaScript是基于对象和事件驱动的客户端脚本语言.有如下特点: 交互性 安全性( ...

  4. JS——BOM、DOM

    BOM.DOM BOM window对象 history对象 location对象 screen对象 DOM DOM对HTML元素访问操作 HTML DOM树 DOM 节点 DOM访问HTML元素 D ...

  5. JavaScript学习总结(一)——ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)

    一.JavaScript简介 JavaScript是一种解释执行的脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型,它遵循ECMAScript标准.它的解释器被称为JavaScript引 ...

  6. JS之BOM、DOM

    一.BOM对象 1,window对象 所有浏览器都支持window对象,从概念上讲:一个HTML文档对应一个window对象,从功能上讲:控制浏览器窗口的,从使用上讲:window对象不需要创建对象, ...

  7. 前端javascript之BOM、DOM操作、事件

    BOM与DOM操作 BOM 浏览器对象模型>>>:使用js操作浏览器 DOM 文档对象模型>>>:使用js操作前端页面 window对象 所有浏览器都支持 wind ...

  8. 前端06 /JavaScript之BOM、DOM

    前端06 /JavaScript 目录 前端06 /JavaScript 昨日内容回顾 js的引入 js的编程要求 变量 输入输出 基础数据类型 number string boolean null ...

  9. BOM、DOM学习笔记——JavaScript

    1.BOM的概述    browser object modal :浏览器对象模型.    浏览器对象:window对象.    Window 对象会在 <body> 或 <fram ...

  10. 细看JS中的BOM、DOM对象

                                        DOM对象模型  DOM(Document Object Model),是指文档对象模型,是W3C组织推荐的处理可扩展标志语言的 ...

随机推荐

  1. Spring Cloud Config 配置属性覆盖优先级。

    /** * Flag to indicate that the external properties should override system properties. * Default tru ...

  2. scrapy中pipeline的一点综合知识

    初次学习scrapy ,觉得spider代码才是最重要的,越往后学,发现pipeline中的代码也很有趣, 今天顺便把pipeline中三种储存方法写下来,算是对自己学习的一点鼓励吧,也可以为后来者的 ...

  3. 开发nginx启动脚本及开机自启管理(case)

    往往我们在工作中需要自行写一些脚本来管理服务,一旦服务异常或宕机等问题,脚本无法自行管理,当然我们可以写定时任务或将需要管理的脚本加入自启等方法来避免这种尴尬的事情,case适用与写启动脚本,下面给大 ...

  4. php学习----基本介绍及数据类型

    php 官方手册:http://php.net/manual/zh/ 1.PHP(全称 Hypertext Preprocessor,超文本预处理器的字母缩写)是一种服务器端脚本语言,它可嵌入到 HT ...

  5. puppet 和 apache passenger的配置

    目录 1. 概要 2. apache passenger 安装测试 2.1. 什么是 apache passenger 2.2. 安装 apache passenger 2.3. 配置 apache ...

  6. May 30. 2018 Week 22nd Wednesday

    Never forget to say "Thanks." 永远不要忘记说谢谢. Don't take anything we get for granted, and never ...

  7. Eclipse JVM terminated.exit code=13

    今天,在安装Nomad PIM时碰到这个问题,因为这个应用是基于32位的Eclipse平台开发的,而我的电脑是64位的Windows 7,当然安装的JDK也是64位的,于是报错. 搜索了网上,给了许多 ...

  8. baidu.com跳转www.baidu.com

    打开git bash,输入 curl baidu.com,收到返回 <html> <meta http-equiv="refresh" content=" ...

  9. E - Intervals 贪心

    Chiaki has n intervals and the i-th of them is [li, ri]. She wants to delete some intervals so that ...

  10. 深入理解Ribbon之源码解析

    什么是Ribbon Ribbon是Netflix公司开源的一个负载均衡的项目,它属于上述的第二种,是一个客户端负载均衡器,运行在客户端上.它是一个经过了云端测试的IPC库,可以很好地控制HTTP和TC ...