JavaScript入门几个概念
JavaScript入门几个概念
刚刚入门JavaScript的时候,搞懂DOM、BOM以及它们的对象document和window很有必要。
- DOM是为了操作文档出现的API,document是它的一个对象。
- BOM是为了操作浏览器出现的API,window是它的一个对象。
DOM
When a web page is loaded, the browser creates a Document Object Model of the page.
DOM(Docment Object Model文档对象模型)
DOM就是针对 HTML 和 XML 提供的一个API。什么意思?就是说为了能以编程的方法操作这个 HTML 的内容(比如添加某些元素、修改元素的内容、删除某些元素),我们把这个 HTML 看做一个对象树(DOM树),它本身和里面的所有东西比如<div></div>这些标签都看做一个对象,每个对象都叫做一个节点(node),节点可以理解为 DOM 中所有 Object 的父类。

DOM节点常用属性
- innerHTML属性: 获取元素的内容,包括元素里面的HTML标签
- nodeName属性: 节点的名称(nodeName是只读的,nodeName始终包含HTML元素的大写字母标签名)
- 元素节点的nodeName与标签名相同
- 属性节点的nodeName与属性名相同
- 文本节点的nodeName始终是#text
- 文档节点的nodeName始终是#document
- nodeValue属性:节点的值
- 元素节点的nodeValue是undefined或null
- 文本节点的nodeValue是文本本身
- 属性节点的nodeValue是属性值
- nodeType属性: 节点的类型
- 元素节点
- 文本节点
- 属性节点
- 注释节点
- 文档
详细例子参见W3school
Dom 操作
由上图可知Docment为根节点,对于使用iframe嵌入网页来说,Document可以有很多个。通过Docment访问其任何子节点,以此进行增删改查元素的内容、样式、响应事件等等实现更改网页的交互方式。以下为一些常见操作:
- 找到节点
- document.getElementById("id")
- document.getElementsByTagName("name")
- document.getElementsByClassName("name")
- 访问类的时候,返回的是一个数组,当把它传给变量var y的时候,在使用这个节点时,使用y[0]。
- 改变节点
- object.innerHTML = new html content
- object.atrribute = new value
- object.setAtrribute(attribute, value)
- Object.style.property = new style
- 增删节点
- document.creatElement(element)
- document.removeChild(element)
- document.appendChild(element)
- document.replaceChild(element)
- document.write(text)
- 绑定事件
- document.getById("id").onclick = function () {code block}
更多方法操作见w3school
JavaScript不能真正改变DOM,仅仅是改变呈现内容,当页面刷新的时候统统会还原,但是我们可以把这些改变提交给服务器,通过后端语言(如PHP)来改变底层数据。
对于用户的一般互动如弹窗等不需要服务器参与,只需JavaScript操作DOM响应反馈即可。
BOM
BOM(Browser Object Model ),通过这个接口允许JavaScript控制浏览器的行为
下图中A、B、C、D均为BOM操作的对象
其中window是浏览器一个对象
- 打开新窗口
- window.open( [URL], [窗口名称], [参数字符串] )
- 关闭窗口
- window.close( )
- .close( )
实例应用

完成的功能为:用户可以在输入框中输入任何内容,点击“确认填写”按钮后,用户输入的内容会显示在“您输入的值是”文字的右边
扩展阅读
- JS中innerHTML、outerHTML、innerText 、outerText、value的区别与联系?jQuery中的text()、html()和val() ?
- 关于 DOM 事件使用的摘记
- JavaScript、jQuery、AJAX、JSON 这四个之间的关系?
参考资料
JavaScript入门几个概念的更多相关文章
- javaScript入门2--基本概念
语法: 1.区分大小写!! 2.标识符:既变量,函数名,属性名,参数. 1.第一个字符必须为字母,_,或者$ 2.其他字符可以是字母,_,&,或者数字 3.注释: 1.单行注释:// 2.多行 ...
- JavaScript入门笔记
第一章 JavaScript语法 1.1 初识JavaScript 1.3 数据类型 1.4 string和boolean类型 1.5 算数操作符 第二章 JavaScript流程控制语句 2.1 循 ...
- Javascript高级程序设计——基本概念(一)
一.语法 EMCA-262通过叫做ECMAScript的“伪语言”为我们描述了javascript实现的基本概念 javascript借鉴了C的语法,区分大小写,标示符以字母.下划线.或美元符号($) ...
- JavaScript入门篇 编程练习
编程挑战 一.定义"改变颜色"的函数 提示: obj.style.color obj.style.backgroundColor 二.定义"改变宽高"的函数 提 ...
- JavaScript入门
本篇内容是学习慕课网相关课程后,总结出可能未来会忘记的内容 (一)JavaScript入门操作 1.js代码插入位置,以及执行顺序 <head> <script type=" ...
- 慕课网JavaScript入门篇课程笔记
1.js注释很重要 单行注释,在注释内容前加符号 “//”. <script type="text/javascript"> document.write(" ...
- JavaScript入门基础
JavaScript基本语法 1.运算符 运算符就是完成操作的一系列符号,它有七类: 赋值运算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&=).算术运 ...
- JavaScript入门介绍(二)
JavaScript入门介绍 [函数] 函数function 是Javascript的基础模块单元,用于代码的复用.信息影藏和组合调用. function a(){} 函数对象Function Lit ...
- JavaScript入门介绍(一)
JavaScript入门介绍 [经常使用的调试工具][w3school.com.cn在线编辑] [Chrome浏览器 开发调试工具]按F121.代码后台输出调试:console.log("t ...
随机推荐
- PowerShell 如何 远程连接【转】
转自: 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://bobzy.blog.51cto.com/2109336/1181249 ...
- 6、C++共用体
6.共用体 共用体(union)是一种数据格式,他能够存储不同的数据类型,但只能同时存储其中的一种类型.也就是说,结构可以同时存储int.long和double,共用体只能存储ing.long.dou ...
- /bin/bash: sshpass: command not found
按照如下命令进行安装即可: apt-get install sshpass
- angular-ui-select 下拉框支持过滤单选多选解决方案(系列一)
angular-ui-select 官方文档:github地址:https://github.com/angular-ui/ui-select 请大家多看文档 首先注意版本的问题,如果版本不 ...
- svn学习笔记(一)
一.svn介绍 1.1 项目管理中的版本控制问题 通常软件开发由多人协作开发,如果对代码文件.配置文件.文档等没有进行版本控制,将会出现很多问题: 备份多个版本,占用磁盘空间大 解决代码冲突困难 容易 ...
- Android ToggleButton(开关函数)与switch (开关按钮)
1.ToggleButton (1)介绍 (2)组件形状 (3)xml文件设置 <?xml version="1.0" encoding="utf-8"? ...
- python shell 清屏(window)
IDLE增加一个清屏的扩展ClearWindow就可以了(在Issue 6143: IDLE中可以看到这个扩展的说明) 安装使用的方法 1.下载ClearWindow.py(右击-目标另存为,格式为p ...
- Qt随笔 - QSettings
QSettings类提供了持久的跨平台应用程序设置. 嗯,一句话概括QSettings-- 创建 来看一下原型: QSettings::QSettings(const QString &org ...
- FFT 深夜摸鱼小笔记
本次笔记学习自算法导论 FFT核心:系数表示→(单位复数根)点值表示→(插值)系数表示 关于单位复数根 n次单位复数根\(ω\)为满足\(ω^n=1\)的复数 n次单位复数根恰好有n个,表示为\(ω_ ...
- panda强化练习2
In [1]: import pandas as pd import numpy as np import matplotlib.pyplot as plt plt.rcParams['font.sa ...
