学习完 js 7天之后学 web API 7
提示一下:js 里面字符串使用单引号 html标签中使用双引号 记住
前言:我们呢一起写完了7天的零基础js入门篇,记住以后实际开发中,API跟基础的7天的知识密不可分。静静我呢最近,给大家分享我最近喜欢的几句话。
第一句就是:无关生死,任何事情都是小事,
第二句就比较励志:一定要坚持你所做的事情,哪怕命运无数次给你击倒,至少我们反抗过命运。学习和任何都重在积累。
分享个我的学习方法:我学的方法就是一遍遍的学,一遍遍的看然后理解他们都是什么都混熟就好了,问过,网易,高德的小伙伴你们当时怎么学的代码,他们说就是写没有别的办法。
对了第三句:小富靠勤,中富靠智,大富靠命
正课 1、
webAPI到底是什么?
webAPI到底是什么?
1、课程主要内容
html负责骨架,用于存放页面中需要展示的内容(数据,内容,图片文字等)
css 负责效果,用于美化与布局
js:语言,用于控制 流程 (控制步骤,操作的顺序)
可以用于控制 html的内容与css 的内容,在页面打开后还可以进行操作
webAPI:是一个非常广泛的词,
但是我们现在学习的特指是使用js来操作html 与css的所有方法的总和
复制代码
2、html 与 DOM结构
我们站在 js 的角度,html 与 css 就是一个字符串,所以我们要操作 html 和css 非常繁琐
例如:更换img 标签中的图片 很繁琐
如果将 html 看成是 字符串,那么操作会很麻烦,我们可以采用 对象的角度来考虑问题
对象的特点: 是一个数据的集合
1>结构清晰,
2>可以避免重复操作
3>键值对
我们的每一个标签,如果看成字符串,要操作属性,就是字符串的,查找,删除,插入等操作 繁琐
如果将每一个标签看成是对象,每一个标签的属性就是对象的属性
那么如果我们想要操作标签的某一个属性,就是可以转换操作对象的属性
如果 img 标签编程一个对象 ,那么 操作属性就可以变成形如
obj.src = 'abcd.jpg';
因此诞生了一个新的观点:DOM的观点
DOM ,文档(document) 对象(object) 模型(model),就是将整个HTML页面看成一个文档对象
页面中所有的标签都看成对象,页面中所有的文本,内容等都是对象
好处:所有的页面都是标签都是 html的子标签
所有的标签之间要么是 兄弟关系,要么是父子关系,所有的标签都是直接或间接的HTML 标签的后代
由于所有的 html 结构都由为一个一个主干 html 延伸出来
首先由head 和body 两个枝丫
然后所有的枝丫就是在他们两个基础上延伸出来,好比一棵树,因此常常将DOM 结构叫做DOM树
复制代码
3、如何获得页面中的元素
前提:
页面中所有的 东西都是对象,唯独标签被称为元素(element)
所有其他的东西统称为 节点node ,包括标签
解答:因为在html中统称为对象 太宽泛,所有 我们进一步的称呼,标签为元素,html 的结构是树状的,所有我们吧meta 节点 head 和 body 节点 因为我们操作 元素
**重要:**
在页面中要获得元素就得想办法定位元素, id,类名,标签名三种方式
利用:id 获取元素
答:document.getElementById('id') 在页面中将id 为对应值的元素返回
类名获取元素
答:document.getElementByClassName('类名');
将页面中所有使用了,该类样式的 元素取出来,并以伪数组的形式返回
标签名获取元素
利用 标签名 获得元素
document.getElementsByTagName('标签名的字符串')
获得页面中所有的对应标签名的元素 以 伪 数组的形式返回
获取元素的案例 :Demo
111
222
333
复制代码
注意: js 语言需要写在 script 标签里面,要是不写在里面就是一段文本
为什么script 标签写在下面呢? 因为浏览器加载 从上往下加载,
利用标签名获取元素 :获得所有的p 标签然后打印出来
11
22
333
444
555
第二种形态 :document.getElementByTagName() 来获取
111
222
333
444
555
使用类名来获取:
111
222
333
实际开发中混合使用:
111
333
复制代码
问题:
->节点与元素的关系,节点比元素大
这对标签没有子内容
这对标签有个空格子内容
在 html 中有很多的 对象 例如 标签, 文本 注释 等等,所有的这些东西统称为节点
在所有的节点种类 中 有一类是标签,我们经常会使用它,将其称为元素,d
复制代码
问题
元素 跟 节点 一定要想明白
注意:凡是在标签中使用了id属性,那么属性名会成为当前页面全局范围内的一个变量
111
复制代码
备注:谨记永远也不要像上面这么写 因为 js 有很多bug 其中有一个特性是 js 没有块级作用域,只有词法作用域,导致在某些函数中无法使用,全局变量等特性
备注: 注意:如果今天你开发的是移动端或者,不考虑低版本浏览器的兼容问题,那么直接使用即可 getElementsByClassName(); IE8不支持哈 问题:学会看文档(MDN)
可以直接利用选择器来获得元素(高级) 常用
document.querySelector('选择器的字符串');
// 在页面中将符合选择器的所有元素中的第0个返回
document.querySelectorAll('选择器的字符串');
// 在页面中将符合选择器的所有元素以维数组的形式返回
选择器(selector)
-》基本选择器:#id,.className,tagName,*
-》复合选择器:子代选择( > ),后代选择器( ' ' )
111
222
333
444
555
复制代码
DEMO 案例 两种方法 获取 元素
第一种传统方法
复制代码
实际开发中获取元素
复制代码
复习:
1、html 与DOM 树
解答:html 内容是 html,css js,html用来控制页面里面有什么东西
解答:DOM 树 操作HTML 面向对象的观点来 封装 起来 操作对象 使用.的方法
2、如何去获得页面中的元素
解答:方法来查找
document.getElementById('id')这个方法用id来获取元素 每次只能获取一次
document.getElementByTagName('tagName') 它拿到页面上所有的标签是以伪数组的形式
document.getElementByClassName('tagName')
document.querySelectorAll('选择器');
document.querySelector('选择器')
复制代码
如何操作属性与样式 重点
操作属性
解答:上面我们讲过把标签当做对象来看,对象的属性操作 只有两种方法,1、读取属性的值,2、给属性赋值
重要对象的操作方式 只有两种:
1、读取属性的值
2、设置属性赋值
在DOM 观点中,页面中的每一个标签都是对象,
我们要读取元素的属性时,直接就是读取对象的属性
我们要设置元素的属性时,直接就是 给对象的属性赋值
复制代码
关于路径的描述
我们网站是放在网站上的服务器上,放在文件夹上
所以我们讲讲文件夹层级
文件夹目录路径:
./ 当前目录,点斜杠是当前目录
../ 上层目录,点点斜杠是上层目录
/ 光一个斜杠,表示是根目录,在服务器上表示的是服务器目录
复制代码
设置 属性操作和 样式操作 class是关键字
1、img 标签自由的属性 width 与height
2、设置img 的行内样式,即img 标签的style 属性中的 width 与 height
3、使用类样式,外部样式,嵌入样式
class是关键字 要使用 className 谨记重要
11
操作属性使用的是className 而不是class 因为 class 是关键字
复制代码
几个特殊的属性 inner
innerHTMl
inner表示的是内部的,与之对应的有一个 outer (外)的意思
innerHTML 内部的 html 记住HTML大写
这个属性的作用是 读取 或 设置 标签中的内容(子标签等)
innerText
复制代码
读取p标签中的文本内容 BytagName() 后面要加[] 数组的索引
我是一个webAPI
复制代码
innerHTML 详细DEMO 与解释
我是webp标签
我是第二个web 标签加粗了这里是一个斜体哟
复制代码
在页面中动态生成列表ul >li
写法1、
写法2、
var arr = ['HTML基础','CSS基础','javaSCript基础','webAPI基础',"111"];
var htmlarr = [""];
for(var i=0; i"+ arr[i]+"")
}
htmlarr.push("
");
var box = document.getElementsByTagName('div')[0];
box.innerHTML = htmlarr.join("");
写法3、
var arr = ['HTML基础','CSS基础','javaSCript基础','webAPI基础',"111",'222'];
document.getElementById('box').innerHTML = "- " + arr.join("
- ") + "
"
复制代码
innerText 的区别
表示标签内部的文本
其与innerHTML 的区别是
1、读取的时候忽略标签
2、设置的时候 标签形式的字符串不会被转换成DOM结构,而是转义 (列如> >)
复制代码
处理行内样式 操作
1、行内样式:直接写在标签中的样式
2、嵌入样式:写在页面中的style 标签中的样式,一般使用的是选择起来定位元素
3、外部样式:独立的利用一个css 文件写到外面,然后利用linck 标签引入css
专一原则,就近原则
复制代码
奇 偶 行 隔行变色 案例:DEMO
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
复制代码