JS中DOM和BOM介绍

1. 什么是BOM?

BOM是Browser Object Model的缩写,简称浏览器对象模型。这个对象就是window

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

BOM由一系列相关的对象构成,并且每个对象都提供了很多方法与属性

BOM缺乏标准,JavaScript语法的标准化组织是ECMA,DOM的标准化组织是W3C

BOM最初是Netscape浏览器标准的一部分

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

JavaScript的组成:ECMAScript、BOM、DOM,其中ECMAScript为JavaScript的核心,但是如果要在浏览器中使用JavaScript,那么BOM才是JavaScript的核心

2.window对象介绍,内置对象(location/history/navigator)及方法

什么是window对象,window对象是浏览器内置的一个对象,相当于BOM的一个抽象

window对象是js中全局对象的寄存地。

window对象的常见方法:

alert(要显示的文本);      //弹出信息框

prompt(提示对话框信息);   //弹出输入框,点击确定,返回字符串,点击取消,返回null

confirm(提示文字);        //点击确定返回true,点击取消返回false

close();                //关闭浏览器(火狐不支持!),但都支持通过别的网页打开的新的网页关闭

//不允许关闭非脚本打开的页面

open(url,name,feature,replace);

//open(‘http://www.baidu.com‘,‘_blank‘,‘width=300,height=300‘)

//谷歌会默认把系统自动打开的新网页阻止掉,但不阻止通过事件打开的网页

window对象下内置的子对象:

1.history对象:该对象包含浏览器访问过的url。

该对象的属性:

history.length;         //返回历史记录的数量

该对象的方法:

history.back();         //后退,加载前一个url。

history.forward();      //前进,需要后退一下之后,才有前进的方向

history.go(num);        //参数为正,前进相应的数目,为负,后退相应的数目,为0,刷新

2.location对象:包含当前url的相关信息,而history对象不能具体反映url的相关信息。

该对象的属性:

location.href;          //设置或返回完整的url

location.search;        //返回url?后面的查询部分

location.hash;          //是一个可读写的字符串,是url的锚部分(从#开始的部分)哈希

该对象的方法:

location.reload();      //刷新页面的方法,一般情况下,传递一个true,不使用缓存刷新。缓存?

location.assign(url);   //加载新页面,当url为空字符时,加载当前页面

3.navigator对象:浏览器信息

navigator.appName;      //返回当前浏览器名

navigator.appCodeName;  //返回当前浏览器的代码名

navigator.appVersion;   //返回当前浏览器的版本号和平台

navigator.platform;     //返回当前计算机的操作系统

以上方法已经在逐渐被抛弃,出现一个新的属性替代这些属性:

navigator.userAgent;    //返回浏览器信息

拓展:4.frames对象:包含当前页面所有的框架信息。

frames.length;                  //返回当前页面的框架数量

frames[0].location;             //修改第一个框架的地址

5.screen对象:包含当前显示屏信息

screen.width/height             //屏幕总宽高度

screen.availWidth/availHeight   //屏幕的宽高(不包括任务栏)

window.onload / onscroll/onresize 事件

onload当文档加载完成后执行一些操作

window.onload = function(){

console.log("页面加载完成")

}

onscroll当页面发生滚动时执行一些操作

window.onload = function(){

console.log(1)            //当页面发生滚动时,打印1

}

onresize当窗口大小发生改变时执行一些操作

window.onresize = function(){

console.log(1)            //当窗口大小发生改变时,打印1

}

页面滚动条距离顶部的距离

document.documentElement.scrollTop

页面滚动条距离左边的距离

document.documentElement.scrollLeft

.DOM的概念和作用

DOM是document Object Model的缩写,简称文档对象模型。他给文档提供了一种结构化的表示方式,可以改变文档的内容和呈现方式,我们最关心的是,DOM把网页和脚本以及其他的编程语言联系了起来

DOM中的选择器

1.getElementById(id)        //获取指定元素的ID元素

2.getElementsByTagName()    //获取相同元素的节点列表,通过标签名选择元素,返回值是一个数组

3.getElementsByName()       //通过name值获取元素,返回值是数组,通常用来获取有name的input的值

4.getElementsByClassName()  //通过class名获取元素,返回值是数组n

注意:1.不是所有标签都有name值;2.在低版本的浏览器中,getElementsByName和getElementsByClassName有兼容性

ES5选择器:

document.querySelectorAll();    //强大到超乎想象,支持IE8+。ECMAScript借鉴了jQuery选择器的

//返回一个数组,哪怕只有一个元素

document.querySelector();

//返回单个元素

根据父级,选择子级:

oDiv.children;        //返回一个数组

根据子级,选择父级:

oSpan.parentNode;     //返回一个元素

1.DOM属性的基本操作(增/删/改/查)

改变元素的内容(innerHTML),属性(value),样式(width,height,background)

也就是对DOM进行增删改查

DOM的属性操作,增删改查

什么是元素的属性?class就是元素的属性,写在元素内的所有东西都是元素的属性,比如link的href,img的src等

元素的属性是什么,分为两种,一种叫内置属性,一种叫非内置属性。

内置属性可以直接通过点"."进行操作

tagName               //返回值是当前元素的标签名

innerHTML/innerText  //返回值是当前元素的内容

id                    //返回值是当前元素的ID

title                 //获取title的标签值,这个title是从document中获取的

className             //返回值是当前元素的class

href                  //返回值是当前的href的值

以上这些属性既可以获取,也可以设置

非内置属性需要通过一些节点的方法进行操作,注意:节点的方法,前缀一定是节点

getAttribute()        //获取 元素的属性

setAttribute()        //设置/修改 元素的属性,低版本的IE不兼容;接收两个参数,属性名和属性值

removeAttribute()     //删除 元素的属性,低版本的IE不兼容

2.节点

根据DOM规定,HTML文档中的每个成分都是一个节点。

DOM是这样规定的:

整个文档是一个文档节点

每个HTML标签是一个元素节点

包含在HTML元素中的文本是文本节点

每一个HTML属性是一个属性节点

注释属于注释节点

相当于HTML文档中的所有内容都是节点,元素是节点的别称,节点包含元素,当然节点还有好多细化的种类

如何获取DOM节点:

对象.parentNode    //获得父元素节点

对象.children      //获得子元素节点的集合,不包含空白节点

//但IE7包含首个注释节点(前面没有元素节点),IE8包含所有注释节点

对象.childNodes    //获得所有子节点的集合,包括空白节点

//IE7/8不包含空文本节点,但IE7包含首个注释节点(前面没有元素节点),IE8包含所有注释节点

如何获取属性节点:

对象.attributes   //获得所有属性节点,返回一个数组

3.childNodes/过滤空白节点

通过 对象.childNodes 获得所有子节点的集合

节点属性 nodeType 返回值为数值

节点类型(nodeType)    节点名字(nodeName)    节点值(nodeValue)

元素节点         1                  标签名                 null

文本节点         3                  #text                 文本

注释节点         8                 #comment             注释的文字

文档节点         9                 #document              null

属性节点         2                  属性名                属性值

通过遍历所有子节点,将空白节点过滤掉,得出所有的元素节点

4.高级选取firstChild/lastChild/parentNode/previousSibling/nextSibling

高级选取,(根据某一个节点位置找到它的父子,兄弟节点)

父(parent)、子(child)和同胞(sibling)等术语用于描述这些关系。父节点拥有子节点。同级的子节点被称为同胞(兄弟)。

对象.childNodes              //获取当前元素节点的所有子节点

对象.ownerDocument           //获取该节点的文档根节点,相当与 document

对象.firstChild              //获得第一个子节点。(IE7/8非空白节点,可能是注释节点)

对象.firstElementChild       //获得第一个非空白的子节点。(IE7/8不支持)

对象.lastChild               //获得最后一个子节点(IE7最后一个元素节点,IE8最后一个非空白节点,可能是注释节点)

对象.lastElementChild        //获得最后一个非空白的子节点。(IE7/8不支持)

对象.nextSibling             //获得下一个兄弟节点。(包含空白节点和注释,IE7/8包括注释节点,不包括空白节点)

对象.nextElementSibling      //获得下个兄弟节点。(IE7/8不支持)

对象.previousSibling         //获得上一个兄弟节点。(包含空白节点和注释。IE7/8包括注释节点,不包括空白节点)

对象.prveiousElementSibling  //获得上一个兄弟节点。(IE7/8不支持)

缺点:兼容性不好

原文地址:https://www.cnblogs.com/xiaomala/p/11404591.html

时间: 2024-08-26 03:30:47

JS中DOM和BOM介绍的相关文章

JS中DOM以及BOM

一.bom对象 1screen对象 console.log(screen.width);// 屏幕宽度 console.log(screen.height);// 屏幕高度 console.log(screen.availWidth); //可用宽度 console.log(screen.availHeight); //可用高度=屏幕高度-底部任务栏 2location对象 完整的URL路径:协议://主机名(IP地址):端口号/文件路径?传递参数(name1=value1&name2=valu

js中的事件 bom对象 dom对象.

3.事件 什么是事件?为什么使用事件? 我们学习事件首先了解一些概念 事件源 事件 监听器 事件源:事件的源头(也就是这个事件是由某某触发的,那么我们就管其叫事件源) 监听器:监听事件发生的组件.那么监听器要想监听事件是否发生,必须注册监听(绑定监听) js中常用的事件 1.onclick 鼠标点击某个对象 我们在开发中一般会对按钮,文本框或radio checkbox等进行onclick操作. 2.onblur 失去焦点 3.onfocus 获去焦点 4.onchange 改变域的内容 针对于

JAVAScript中DOM与BOM的差异分析

JAVAScript 有三部分构成,ECMAScript,DOM和BOM,根据浏览器的不同,具体的表现形式也不尽相同.我们今天来谈一谈DOM和BOM这俩者之间的差异. 用百科上的来说: 1. DOM是 W3C 的标准; [所有浏览器公共遵守的标准] 2. BOM 是 各个浏览器厂商根据 DOM在各自浏览器上的实现;[表现为不同浏览器定义有差别,实现方式不同] 3. window 是 BOM 对象,而非 js 对象: DOM(文档对象模型)是 HTML 和 XML 的应用程序接口(API). BO

js中DOM 节点的一些操作方法

什么是DOM DOM:文档对象模型.DOM 为文档提供了结构化表示,并定义了如何通过脚本来访问文档结构.目的其实就是为了能让js操作html元素而制定的一个规范. DOM就是由节点组成的. 解析过程 HTML加载完毕,渲染引擎会在内存中把HTML文档,生成一个DOM树,getElementById是获取内中DOM上的元素节点.然后操作的时候修改的是该元素的属性. DOM树(一切都是节点) DOM的数据结构如下: 上图可知,在HTML当中,一切都是节点:(非常重要) 元素节点:HMTL标签. 文本

javascript中DOM基础知识介绍

1.1.     基本概念 1.1.1.      DOM DOM Document Object Model 文档对象模型 就是把HTML文档模型化,当作对象来处理 DOM提供的一系列属性和方法可以视作一个工具箱,极大地方便了我们对文档的处理. 1.1.2.      内容概念 文档(Document):就是指HTML或者XML文件 节点(Node):HTML文档中的所有内容都可以称之为节点,常见的节点有 元素节点 属性节点 文本节点 注释节点 元素(Element):HTML文档中的标签可以

A.JS中对象的简单介绍

JS中的对象实际上是一个包含属性和方法的一个特殊的数据集合.调用的时候用(.)来进行调用.object.property;object.method.为了加深理解,我们设置一个person对象,他有age,sex属性:有sleep(),eat()方法.那么当我们要使用person对象时,首先,需要实例化一个对象,利用new关键字,比如: var bob = new person; 上面的语句就是实例化了一个person对象,bob.他有person对象的所有属性和方法.可以利用(.)来进行对属性

js关于DOM和BOM

关于BOM和DOM BOM 下面一幅图很好的说明了BOM和DOM的关系 BOM提供了一些访问窗口对象的一些方法,我们可以用它来移动窗口位置,改变窗口大小,打开新窗口和关闭窗口,弹出对话框,进行导航以及获取客户的一些信息如:浏览器品牌版本,屏幕分辨率.但BOM最强大的功能是它提供了一个访问HTML页面的一入口——document对象,以使得我们可以通过这个入口来使用DOM的强大功能!!! window对象是BOM中所有对象的核心.window对象表示整个浏览器窗口,但不必表示其中包含的内容.此外,

js中typeof用法详细介绍

本文章来介绍在js使用中的一个函数typeof用法, typeof 运算符把类型信息当作字符串返回,包括有大家常有变量类型. typeof 运算符把类型信息当作字符串返回.typeof 返回值有六种可能: "number," "string," "boolean," "object," "function," 和 "undefined."我们可以使用typeof来获取一个变量是否存在,如

原生JS中DOM节点相关API合集

节点属性 Node.nodeName //返回节点名称,只读 Node.nodeType //返回节点类型的常数值,只读 Node.nodeValue //返回Text或Comment节点的文本值,只读 Node.textContent //返回当前节点和它的所有后代节点的文本内容,可读写 Node.baseURI //返回当前网页的绝对路径 Node.ownerDocument //返回当前节点所在的顶层文档对象,即document Node.nextSibling //返回紧跟在当前节点后面