JavaScript DOM&BOM
1.DOM含义
D: Document 文档 一份文档就是一棵节点树,每个节点都是一个对象
O:Object 对象
JavaScript语言里对象可以分为三种类型:
(1)用户定义的对象(user-defined object) 有程序员自己创建的对象
(2)内建对象(native object) 内建在JavaScript语言里的对象,如Array、Math、Date等
(3)宿主对象(host object) 由浏览器提供的对象,如 window对象
M: 模型,文档的表现形式。
2.DOM操作节点方法
(1)getElementById(id)
这个方法返回一个对象,这个对象对应着document对象里一个独一无二的元素。
(2)getElementsByTagName(tag);
getElementsByTagName方法会返回一个对象数组,每个对象分别对应着文档里有着给定标签的一个元素。参数tag就是文档的标签,比如body、ul、ui等标签。
(3)getElementsByClassName(class);
HTML5 DOM中新增的一个方法。这个方法能够通过class属性来访问元素。该方法返回的也是数组。
如果你想输入多个className可以用空格隔开。
(5)childNodes获取节点下的所有类型的子元素,该属性返回一个数组
文档里的节点不止元素节点、文本节点,属性节点三个类型的节点。文档里几乎每一样东西都是一个节点。甚至连空格和换行都会被解释为节点,而他们也会全部包含在childNodes属性返回的数组当中。
上面我们通过getElementsByTagName(““)也可以获取某个节点下子元素, 注意getElementsByTagName(““)返回的不仅仅是直接子节点,如果子节点包含了节点,也会计算在内的。
虽然childNodes返回所有类型的节点,我们可以通过nodeType获取节点的类型,但是该属性只返回整形。
(6)nodeType 节点的类型
元素节点的nodeType属性值是1.
属性节点的nodeType属性值是2.
文本节点的nodeType属性值是3.
也就这是三个节点有使用价值。
(7)nodeValue 属性返回文本节点的值。
比如要获取<p id="xxx">我是标签p里的值</p>里面的文本的值,其实这里包含了两个节点,一个元素节点p和里面的文本节点,可以通过下面方式获取里面的文本:
document.getElementById("xxx").childNodes[0].nodeValue; //document.getElementById("xxx").firstNode.nodeValue;
nodeValue除了可以获取文本节点的值,还可以修改文本节点的值,如:
p1.firstChild.nodeValue = "通过nodeValue设置新的值"
(8)firstChild 和 lastChild 获取节点数组中首尾节点
var e = document.getElementById(“xxx”);
e.firstChild 相当于 e.childNodes[0]
e.lastChild 相当于 e.childNodes[e.childNodes.length-1]
BOM操作的常用属性和方法
open():打开一个新的页面,格式为open(页面的url,打开的方式),如果url为空则打开一个空白页面。如果打开方式为空,默认为新窗口方式打开。这个方法返回新窗口的window对象。
close():关闭一个页面,但是这个方法有点兼容性问题,firefox默认无法关闭,chrome默认直接关闭,ie:询问用户。
navigator.userAgent:返回浏览器的名称和版本。
location:浏览器地址信息,本身不是字符串,是object格式。
location:就是url地址本身。
location.search:url中?后面的内容。
location.hash:url中#后面的内容。
窗口尺寸与大小
可视区的尺寸:document.documentElement.clientWidth和document.documentElement.clientHeight。
滚动条滚动的距离:document.documentElement.scrollTop和document.documentElement.scrollLeft。在chrome浏览器中要使用document.body.scrollTop和document.body.scrollLeft。
元素内容的宽高:div.scrollHeight和div.scrollWidth。
文档的宽高:document.documentElement.offsetHeight和document.documentElement.offsetWidth。也可以使用document.body.offsetHeight和document.body.offsetWidth。
事件
onscroll:当滚动条滚动的时候触发。
onresize:当浏览器尺寸改变的时候触发。
onfocus:当元素获取焦点时触发。
onblur:当元素失去焦点时触发。
focus():给元素设置焦点。
blur():让元素失去焦点。
select():选择指定元素里面的文本内容。只能选择用户可以输入的内容。
onmousemove:鼠标在一个元素上移动时触发。
onkeydown:当键盘按键按下的时候触发。能够响应用户输入的元素才支持键盘事件,和焦点事件一样。如果按下不抬起来会连续触发。
onkeyup:当键盘按键抬起时触发。
oncontextmenu:当右键菜单显示出来时触发。
event事件对象:当一个事件发生时,这个对象发生的这个事件有关的一些详细的信息都会临时保存到event对象中,以便在需要时使用。
JavaScript DOM&BOM的更多相关文章
- JavaScript·DOM,BOM
YI.DOM 1.创建DOM 2.删除DOM 3.文档碎片 文档碎片可以提高DOM操作性能(理论上) 文档碎片(类似于一个口袋,先将多个元素放在口袋里,放完之后,再将口袋放到最终要插入的元素中): d ...
- WEB 技术分类 Javascript DOM(Element Node) BOM
Web technology for developers Web 技术文档 备注:本文介绍web technology的分类,各自职责,因为之前一直就没有搞明白各种技术.各种名词究竟是属于哪个范 ...
- JavaScript的BOM和DOM
JavaScript的BOM和DOM 1,window对象,所有浏览器都支持window对象,它表示浏览器窗口 BOM(browser Object Model)是指浏览器对象模型,它使JavaScr ...
- javaScript之DOM,BOM
javaScript之BOM / DOM: BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行"对话". DOM ...
- [JavaScript之BOM与DOM]
[JavaScript之BOM与DOM] BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行"对话". DOM ( ...
- 读书笔记:JavaScript DOM 编程艺术(第二版)
读完还是能学到很多的基础知识,这里记录下,方便回顾与及时查阅. 内容也有自己的一些补充. JavaScript DOM 编程艺术(第二版) 1.JavaScript简史 JavaScript由Nets ...
- javascript DOM操作HTML文档
文档对象模型(DOM)是W3C为解决浏览器混战时代不同浏览器环境之间的差别而制定的模型标准.W3C将文档对象模型定义为:是一个能让程序和脚本动态 访问和更新文档内容.结构和样式的语言平台.提供了标准的 ...
- 第一百一十一节,JavaScript,BOM浏览器对象模型
JavaScript,BOM浏览器对象模型 学习要点: 1.window对象 2.location对象 3.history对象 BOM也叫浏览器对象模型,它提供了很多对象,用于访问浏览器的功能.BOM ...
- 什么是BOM?,什么是DOM? BOM跟DOM之间的关系
什么是BOM? BOM是browser object model的缩写,简称浏览器对象模型.是用来获取或设置浏览器的属性.行为,例如:新建窗口.获取屏幕分辨率.浏览器版本号等. 比如 alert(); ...
随机推荐
- js插件ztree使用
最新给公司后台写了一个配置页面,在网上搜到一个js插件ztree,记录一下使用心得. 首先说一下ztree官网,好多方法我都是从官网api上学习的,官网地址http://www.treejs.cn/v ...
- python笔记25-sys模块
import sys#sys.argv命令行参数List,第一个元素是程序本身路径# sys.exit('xxxxx')#退出程序,正常退出时exit(0)# print(sys.version) # ...
- nginx自定义header支持
今天配置nginx的时候遇到一个问题,直接访问接口没有问题,但是通过nginx转发之后,总是报token失效,无法获取token值,发现请求头丢失了. 默认是不支持非nginx标准的用户自定义head ...
- 策略模式(Strategy Model)
定义:一个类的行为或算法能在运行时被改变,将一组算法封装成一系列对象,通过这些对象灵活改变系统功能: 实现方式: 首先定义个strategy接口,然后创建一系列对象(strategy objects) ...
- Python第一章(北理国家精品课 嵩天等)
1.1程序设计基本方法 IPO 分析问题,划分边界,设计算法: 编写程序,调试测试,升级维护. 1.2Python开发环境配置 1.3实例1:温度转换 1.4Python程序语法元素分析 缩进,#添加 ...
- holer实现外网访问本地tomcat
外网访问内网Tomcat 内网主机上安装了Tomcat,只能在局域网内访问,怎样从公网也能访问本地Tomcat? 本文将介绍使用holer实现的具体步骤. 1. 准备工作 1.1 安装Java 1.7 ...
- datetime模块
# 其中days = -2,可以根据需要进行替换,这样就可以得到不同需要的日期了. # # 另外:可以通过strftime方法,指定时间的输出格式. # # 除了以上输入的 %Y-%m-%d ...
- String、StringBuffer和StringBuilder的区别及应用场景
1. 运行速度:StringBulider>StringBuffer>String String为什么运行行慢呢? String:字符串常量 StringBuffer.StringBuli ...
- Spring 基于set方法的依赖注入
注意,再次强调,注入一个值用value,注入一个引用,要使用 ref 来注入 同时,注入的对象,要有set和get方法,才能通过方法注入. <?xml version="1. ...
- java利用itext导出pdf
项目中有一功能是导出历史记录,可以导出pdf和excel,这里先说导出pdf.在网上查可以用那些方式导出pdf,用itext比较多广泛. 导出pdf可以使用两种方式,一是可以根据已有的pdf模板,进行 ...