IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> HTML第七天总结 -> 正文阅读

[JavaScript知识库]HTML第七天总结

1.webapi介绍

1.1 api的概念

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。例如:alert()、?prompt()、log()、reverse()、getMonths()

任何开发语言都有自己的API

API的特征输入和输出(I/O)
API的使用方法(console.log())

1.2 webapi的概念

浏览器提供的一套操作浏览器功能和页面元素的API(BOM和DOM)

我们可以通过API去操作DOM和BOM

此处的web API特指浏览器提供的API(一组方法),web API在后面的课程中有其它含义

1.3 JavaScript的组成

?

2.DOM概念

事件基础文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口。在网页上,组织页面(或文档)的对象被组织在一个树形结构中,用来表示文档中对象的标准模型就称为DOM。Document Object Model的历史可以追溯至1990年代后期微软与Netscape的“浏览器大战”,双方为了在JavaScriptJScript一决生死,于是大规模的赋予浏览器强大的功能。微软在网页技术上加入了不少专属事物,既有VBScriptActiveX、以及微软自家的DHTML格式等,使不少网页使用非微软平台及浏览器无法正常显示。DOM即是当时蕴酿出来的杰作。

DOM又称为文档树模型

文档:一个网页可以称为文档
节点:网页中的所有内容都是节点(标签、属性、文本、注释等)
元素:网页中的标签
属性:标签(元素)的属性

3.获取元素的方式

1、根据id获取元素

?var?div1?=?document.getElementById("box1");

2、通过类名获取元素

var?p1Arr?=?document.getElementsByClassName("p1");
console.log(p1Arr?instanceof?Array);//false
console.log(Array.isArray(p1Arr));//false
console.log(p1Arr.length);
console.log(p1Arr[0]);
console.log(p1Arr[1]);

伪数组定义:

1、拥有length属性,其它属性(索引)为非负整数(对象中的索引会被当做字符串来处理,这里你可以当做是个非负整数串来理解)
2、不具有数组所具有的方法
伪数组,就是像数组一样有?length?属性,也有?0、1、2、3?等属性的对象,看起来就像数组一样,但不是数组
常见的参数的参数 arguments,DOM 对象列表(比如通过 document.getElementsByTags 得到的列表)

/*??p1Arr.push(100);
???console.log(p1Arr);?*/
??/*??p1Arr.forEach(function?(value,?index)?{
?????console.log(value);
???})?*/

3、通过标签名获取元素

var?tag1?=?document.getElementsByTagName("div");
???console.log(tag1);
???console.log(tag1[0]);

4、通过name名获取元素

?var?userList?=?document.getElementsByName("user");
??console.log(userList);
??for?(var?i?=?0;?i?<?userList.length;?i++)?{
????console.log(userList[i]);
??}

5、通过选择器的querySelector获取元素

querySlector():获取指定选择器的第一个元素,参数就是选择器的名称
?

??var?div1?=?document.querySelector(".box1");
??console.log(div1);
??var?li1?=?document.querySelector("ul>li");
??console.log(li1);
??var?user_1?=?document.querySelector("#user_1");
??console.log(user_1)

6、通过选择器的querySelectorAll获取元素

querySelectorAll():获取指定选择器的所有的元素,参数就是选择器的名称
?var?boxList?=?document.querySelectorAll(".box1");
??console.log(boxList);
??var?listLi?=?document.querySelectorAll("ul?li");
??console.log(listLi);

4.事件初识

事件:触发-响应机制

Event接口表示在DOM中发生的任何事件,一些是用户生成的(例如鼠标或键盘事件),而其他由API生成。

4.1 事件三要素

事件源:触发(被)事件的元素

事件类型:事件的触发方式(例如鼠标点击或键盘点击)

事件处理程序:事件触发后要执行的代码(函数形式)

4.2 事件的基本使用

<script>
var box = document.getElementById('box');
box.onclick = function () {
console.log('代码会在box被点击后执行');
};
</script>

鼠标单击事件:onclick ???浏览器加载完成事件:onload

4.3 事件触发的多种写法

HTML内部书写所有

HTML行内触发方法

HTML外部书写

5.非表单元素的属性操作

href、title、id、src、className width height等等

1、添加src属性值显示图片

imgBox.src?=?"images/jie.jpg";

2、改变图片大小

imgBox.width?=?750;
imgBox.height?=?500;

3、通过style改变宽高

imgBox.style.width?=?750?+?"px";
imgBox.style.height?=?500?+?"px";
//通过样式属性设置宽高、位置的属性类型是字符串,需要加上px
凡是css中这个属性是多个单词的写法,在js代码中DOM操作的时候.把-干掉,后面的单词的首字母大写即可

4、通过类名改变宽度

??imgBox.className?=?"imgCl";
//className?会覆盖之前设置好的类名!

5、隐藏元素

1、src=""
2、display=none;?不占位置的
3、visibility="hidden

6、this的指向问题
普通函数中,this指向window
事件函数中,this指向事件源
对象函数中,this指向当前的对象
构造函数中,this指向实例化对象

6.表单元素的属性操作

value 用于大部分表单元素的内容获取(option除外)

type 可以获取input标签的类型(输入框或复选框等)

disabled 禁用属性checked 复选框选中属性

selected 下拉菜单选中属性

checked

7.InnerText

返回被选元素的文本内容

?var?p1?=?document.getElementById("p1");
?console.log(p1.innerText);

设置被选元素的文本内容

btn1.onclick?=?function?()?{
????//?设置文本
????p1.innerText?=?"文本改变了哈";
????console.log(p1.innerText);
??}

8.阻止a链接跳转

三种写法

<!--?第一种方法?-->
??<a?href="https://www.baidu.com"?onclick="alert('单击链接了!');?return?false">百度一下</a>
??<a?href="https://www.baidu.com"?onclick="fn1();?return?false">百度两下</a>
?function?fn1()?{
????alert("单击链接了哈");
??}

第一种缺点:代码不分离,不符合低耦合,高内聚的规范

<!--?第二种方法?-->
??<a?href="https://www.baidu.com"?onclick="return?fn2();">百度三下</a>
?function?fn2()?{
????alert("单击百度三了哈!");
????return?false;
??}

第二种代码 缺点同上

??<!--?第三种方法?-->
??<a?href="https://www.baidu.com"?id="link">百度四下</a>
??document.getElementById("link").onclick?=?function?()?{
????alert("单击百度四了哈!");
????return?false;
??}

第三种行为与结构分离

9.新事件

9.1 鼠标事件

onmouseover鼠标移入事件:在鼠标指针移动到元素上时触发。
onmouseout 鼠标移出事件:在鼠标指针移出元素后触发

//鼠标移入事件
??box1.onmouseover?=?function?()?{
????this.style.fontSize?=?"26px";
????this.style.height?=?"60px";
????console.log(111)
??}
??//?鼠标移出事件
??box1.onmouseout?=?function?()?{
????this.innerText?=?"鼠标移出了哈!";
????this.style.height?=?"30px";
????this.style.fontSize?=?"16px";
??}

onmouseenter鼠标进入事件:在鼠标指针进入到元素上时触发。
onmouseleave 鼠标离开事件:在鼠标指针离开元素后触发

//?鼠标进入事件
??box2.onmouseenter?=?function?()?{
????this.style.borderRadius?=?"12px";
????this.style.backgroundColor?=?"blue";
??}
??//鼠标的离开事件
??box2.onmouseleave?=?function?()?{
????this.style.borderRadius?=?"0";
????this.style.backgroundColor?=?"purple";
??}

onfocus获取焦点事件:在鼠标光标获取输入框焦点时触发
onblur失去焦点事件:在鼠标光标失去焦点时触发。

//获取焦点事件
??user.onfocus?=?function?()?{
????this.style.border?=?"3px?solid?red";
????this.style.outline?=?"0";
??}
??//?失去焦点事件
??user.onblur?=?function?()?{
????console.log(this.value);
??}

onclick单击事件:在鼠标指针单击时触发
ondblclick双击事件:在鼠标光标双击时触发。

box1.ondblclick?=?function?()?{
????this.style.backgroundColor?=?"yellow";
??}

9.2 键盘事件

onkeydown:键盘按下
onkeyup:键盘抬起??

?document.getElementById("user").onkeydown?=?function?()?{
????console.log("按下了!!1");
??}
??document.getElementById("user").onkeyup?=?function?()?{
????console.log("抬起来了!!1");
????console.log(this.value);
??}

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-22 12:15:09  更:2021-11-22 12:17:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 23:06:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码