JavaScript 基础第七天(DOM的开始)
一、引言
JavaScript的内容分为三个部分,这三个部分分别是ECMAScript、DOM、BOM三个部分组成。所谓ECMAScript就是JavaScript和核心基础语法,DOM是文档对象模型,最后剩下的BOM则是浏览器对象模型。这三个部分相辅相成组成了现在的JavaScript。
二、导入
前面几天我们学习就是有关有ECMAScript即基础语法部分,从今天开始我们将开始接触文档对象模型,做好准备。let's Go!
三、重点内容
① 什么是DOM:
DOM= Document Object Model,文档模型对象,DOM可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构。换句话说,这是表示和处理一个HTML或XML文档的常用方法。(我承认这是百度的)。我的理解是我们为了方便的去控制页面上的元素先把页面封装成一个对象,因为和文档有关所以叫做文档对象。如果这样还不好理解你可暂时把它理解成就是一个有很多枝叶的大树就好了。我们学习DOM就是为了学习一些操作页面元素的API。
② 节点:
既然我们把它理解成一棵树那么树上就会有很多的枝叶,那么这些枝叶又是什么呢?这些枝叶我们称作为节点,因为数量很多所以又包括元素、属性、文本三部分。可以说在文档上的一切基本都是节点。
③ 页面元素的获取:
我们想要操作页面元素的API那首先是不是应该获取呢?那获取的方式又有什么呢?
a.getElementById:
<input type="text" value="默认的文字" id="txt"/>
<input type="button" value="按钮" id="btn"/>
<script>
// 第一种获取页面元素的方式 getElementById
var txt = document.getElementById("txt");
console.log(txt);
console.log(txt.value);
txt.value="这是修改后的文字"; var btn = document.getElementById("btn");
console.log(btn);
console.log(btn.value);
b.getElementByTagName:
<input type="text" value="123"/>
<input type="text" value="456"/>
<input type="text" value="789"/>
<input type="text" value="abc"/>
<input type="text" value="mmmm"/>
<input type="text" value="kkk"/> <script>
// 获得页面元素的第二种方式 通过标签名 var inputs = document.getElementsByTagName("input");
console.log(inputs);
for(var i=0;i<inputs.length;i++){
// console.log(inputs[i].value);
inputs[i].value = "aaaaa";
}
</script>
在这里需要注意的是通过getElementByTagName获得的内容是一个数组,即使只有一个元素也会是用数组表示。
c.getElementByClassName:
<div class="dv"></div>
<p class="dv"></p>
<div class="dv"></div>
<p class="dv"></p>
<span class="dv"></span>
<script>
// 第三种获取页面元素的方式
var eles = document.getElementsByClassName("dv"); //获得的也是一组数据
console.log(eles);
这个方式不推荐使用因为在兼容上会有一定的问题。
④ 事件:
我们在获取了页面的元素后就需要对元素进行一定的操作了,我们通过给指定元素设置指定方式的方法来进行一定的操作。那么什么事件呢?事件就是文档或者浏览器窗口发生的一些特定的交互瞬间。 它分为两个部分触发和响应。
⑤ 事件的三要素:
a.事件源
b.事件名称
c.事件处理程序
⑥ 注册事件:
在指定方法前我们就需要注册事件,注册事件又分为以下的三种:
a.行内式:直接在对应的标签上注册事件。
<a href="images/2.jpg" id="a2" onclick="turn2();return false;"><img src="data:images/2-small.jpg" alt=""/></a>
b.内嵌式:利用匿名函数的方式
<a href="images/1.jpg" id="a1" ><img src="data:images/1-small.jpg" alt=""/></a>
<a href="images/2.jpg" id="a2" ><img src="data:images/2-small.jpg" alt=""/></a>
<br/>
<img src="data:images/placeholder.png" alt="" width="600" id="img"/>
<script>
var img = document.getElementById("img");
var a1 = document.getElementById("a1");
var a2 = document.getElementById("a2");
a1.onclick = function(){
img.src = this.href;
return false;
}
a2.onclick = function(){
img.src = this.href;
return false;
}
需要注意的是在这里还有一种方式是给时间设置监听者,但这里我们先不做介绍。
四、总结
今天的内容就介绍这么多,主要的理解方面还是放在DOM的认识以及使用上。
JavaScript 基础第七天(DOM的开始)的更多相关文章
- JavaScript基础(2)-DOM
一.伪数组arguments arguments代表的是实参,有个讲究的地方是:arguments只在函数中使用. 1.返回函数实参的个数:arguments.length,例如: fn(2,4); ...
- JavaScript基础15——js的DOM对象
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- JavaScript基础2---控制权DOM操作
文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM将HTML文档呈现为带有元素,属性和文本的树结构(节点树). HTML文档可以说由节点构成的 ...
- JavaScript 基础第八天(DOM第二天)
一.引言 初步认识DOM有可能会被各种不熟悉的因为因素影响自己的学习心态,你需要的是多去记忆一些单词然后加强自己的代码量. 二.导入 在昨天初步认识DOM以后我们见天将接着介绍有关于DOM的内容. 三 ...
- JavaScript基础--超级玛丽(七)(上下左右控制)
相信大家都玩过超级玛丽,下面实现控制玛丽的上.下.左.右等基本功能,本篇只是在练习JavaScript的用法 1.创建一个HTML页面 <!doctype html> <html l ...
- JavaScript基础学习(七)—BOM
BOM(Browser Object Model): 浏览器对象模型.提供了独立于内容而与浏览器窗口交互的对象,BOM主要用于管理窗口和窗口之间的通讯. 一.Navigator对象 ...
- javascript基础拾遗(七)
1.对象的继承__proto__ var Language = { name: 'program', score: 8.0, popular: function () { return this.sc ...
- 回归JavaScript基础(七)
主题:引用类型Function的介绍. 今天首先说的就是Function类型.下面就是定义函数的两种方法,第一种使用函数声明语法定义,第二种使用函数表达式定义.这两种定义函数的方式几乎没有什么区别. ...
- JavaScript 基础第九天(DOM第三天)
一.引言 我们昨天介绍了很多的概念以及大部分我们可以在工作中用到的事件,那么今天我们将运用这些知识做一些效果! 二.导入 今天的内容以实例为主. 三.重点内容 祝愿墙的简单构建: 首先我将介绍出本次实 ...
随机推荐
- cefsharp在xp上运行
今天遇到一个坑.也是自己英语不足的体现.在xp上运行cefsharp.wpf. 查询了各种资料.按照说明一步一步的操作,都没有解决xp上运行cefsharp.wpf. 而且在xp上调试都不知道错误在哪 ...
- 各大浏览器 CSS3 和 HTML5 兼容速查表
不知不觉中,支持 CSS3 和 HTML5 的浏览器变得越来越多,甚至包括最新版的 IE,当然,所谓支持仅仅是部分支持,因为 CSS3 和 HTML5 的W3C 规范都尚未形成.如果你现在就希望使用 ...
- Java重点之小白解析--浅谈HashMap与HashTable
这是一个面试经常遇到的知识点,无论什么公司这个知识点几乎是考小白必备,为什么呢?因为这玩意儿太特么常见了,常见到你写一百行代码,都能用到好几次,不问这个问哪个.so!本小白网罗天下HashMap与Ha ...
- 这有一个flag
1.并查集[1224] 2.最小生成树?? 3.topsort(好洋气): 4.归并排序[1438]: 5.差分约束系统: 6.A*算法找k短路 7.scanf: 8.搜索[P1198]华容道: 9. ...
- Zabbix(一)--zabbix 2.4.8 安装
zabbix依赖于LAMP,所以部署前要先保证这个平台. 安装服务端(Server) zabbix官网的rpm包都是按照功能分开一个个,比如: zabbix-server-2.4.7-1.el7.x8 ...
- 十分钟使用github pages +hexo拥有个人博客
最近想自己搭建自己的个人博客,毕竟这样觉得比较geek,但是搜了资料,感觉良莠不齐,好多东西说的含糊不清,于是自己记录下自己的搭建过程. 1, 安装nodejs 2, 安装git 3, 申请githu ...
- Linux下高cpu占有率的调试方案
1.用top命令查看哪个进程占用CPU高 gateway网关进程14094占用CPU高达891%,这个数值是进程内各个线程占用CPU的累加值. 2.用top -H -p pid命令查看进程内各个线 ...
- c#遍历目录及子目录下某类11型的所有的文件
DirectoryInfo directory = new DirectoryInfo("D:\\aa\\"); FileInfo[] files = directory.GetF ...
- ue4 重新生成ide project文件的命令行
有时候换了机器,工程文件没了,通常是在编辑器里有个菜单项可以生成 但是有时编辑器自身都编不过,没法运行 这时需要调试代码,可以用命令行生成相应的工程文件: ../UnrealEngine/Genera ...
- linux 查看php-fpm 进程数
netstat -napo |grep "php-fpm" | wc -l