JavaScript之DOM(一)(获取元素、事件基础、操作元素)

4、返回对文档中所有Form对象引用

document.forms

5、返回对文档中所有Image对象引用

document.images

三、事件基础

=====================================================================

1、事件三要素


事件三要素是指事件源、事件类型和事件处理程序这3部分。

事件源:触发事件的元素(谁触发了事件)

事件类型:如click 单击事件(触发了什么事件)

事件处理程序:事件触发后要执行的代码(函数形式),也称事件处理函数(触发事件以后要做什么)

做一个“点击按钮弹出警示框”的案例。如下所示:

点击

运行结果如下:

在这里插入图片描述

2、 执行事件的步骤


1.获取事件源

2. 注册事件(绑定事件)

3. 添加事件处理程序(采取函数赋值形式)

如上例所示,就是一个采用了该步骤的事件。

3、常见的鼠标事件


| 鼠标事件 | 触发条件 |

| — | — |

| onclick | 鼠标点击左键触发 |

| onmouseover | 鼠标经过触发 |

| onmouseout | 鼠标离开触发 |

| onfocus | 获得鼠标焦点触发 |

| onblur | 失去鼠标焦点触发 |

| onmousemove | 鼠标移动触发 |

| onmouseup | 鼠标弹起触发 |

| onmousedown | 鼠标按下触发 |

四、 操作元素

======================================================================

JavaScript 的 DOM 操作可以改变网页内容、结构和样式,我们可以利用 DOM 操作元素来改变元素里面的内容 、属性等。

1、改变元素内容


分别有如下几种方式:

//1.

element.innerHTML

设置或返回元素开始和结束标签之间HTML。包括HTML标签,同时保留空格和换行

//2.

element.innerText

设置或返回元素的文本内容,在返回的时候会去除HTML标签和多余的空格、换行,在设置的时候会进行特殊字符转义

//3.

element.textContent

设置或者返回指定节点的文本内容,同时保留空格和换行

例如:

分别利用innerHTMLinnerTexttextContent属性在控制台输出一段HTML文本。

代码如下:

你好呀

你好,我是王欢。

你是?
我是小熊哦!

打印结果为:

在这里插入图片描述

我们可以发现这三种方法打印的结果也是不同的。

innerHTML在使用时会保持编写的格式以及标签样式

innerText去掉所有格式以及标签的纯文本内容

textContent属性在去掉标签后会保留文本格式

2、常用元素的属性操作


在DOM中,HTML属性操作是指使用JavaScript来操作一个元素的HTML属性。一个元素包含很多的属性,例如,对于一个img图片元素来说,可以操作它的srctitle属性等,或者对于input元素来说,可以操作它的disabledcheckedselected属性等。

例如:通过修改图片的路径实现点击不同的按钮出现不同的图片的效果。

图1

图2

打印结果为:

在这里插入图片描述

3、样式属性操作


我们可以通过 JS 修改元素的大小、颜色、位置等样式。

//1.行内样式操作

element.style

//2. 类名样式操作

element.className

需要注意的是:

  1. 如果样式修改较多,可以采取操作类名方式更改元素样式。

2.class因为是个保留字,因此使用className来操作元素类名属性

  1. className 会直接更改元素的类名,会覆盖原先的类名。

4、自定义属性的操作


1、获取属性值

element.属性

element.getAttribute(‘属性’);

区别:

element.属性 获取内置属性值(元素本身自带的属性)

element.getAttribute(‘属性’); 主要获得自定义的属性 (标准) 我们自定义的属性。

2、设置属性值

element.属性 = ‘值’ //设置内置属性值。

element.setAttribute(‘属性’, ‘值’);

区别:

element.属性 设置内置属性值

element.setAttribute(‘属性’); 主要设置自定义的属性 (标准)

3、 移除属性

element.removeAttribute(‘属性’);

5、H5自定义属性


自定义属性目的:是为了保存并使用数据。有些数据可以保存到页面中而不用保存到数据库中。

自定义属性获取是通过getAttribute(‘属性’)获取。

但是有些自定义属性很容易引起歧义,不容易判断是元素的内置属性还是自定义属性。

H5给我们新增了自定义属性:

1、 设置H5自定义属性

H5规定自定义属性data-开头做为属性名并且赋值。

数据结构与算法

这一块在笔试、面试的代码题中考核较多,其中常考的数据结构主要有:数组、链表、队列、栈、Set、Map、哈希表等,不同数据结构有不同的方法以及储存原理,这些算是技术岗的必备知识。算法部分主要分为两大块,排序算法与一些其他算法题

排序算法根据考频高低主要有:快速排序、归并排序、堆排序、冒泡排序、插入排序、选择排序、希尔排序、桶排序、基数排序、Timsort这十种,这类考核点要么是算法的时间、空间复杂度、稳定度,要么是直接手写代码,故在理解算法原理的同时,对JS语言版的排序算法代码也要加强记忆。

  • 二叉树层序遍历
  • B 树的特性,B 树和 B+树的区别
  • 尾递归
  • 如何写一个大数阶乘?递归的方法会出现什么问题?
  • 把多维数组变成一维数组的方法
  • 知道的排序算法 说一下冒泡快排的原理
  • Heap 排序方法的原理?复杂度?
  • 几种常见的排序算法,手写
  • 数组的去重,尽可能写出多个方法
  • 如果有一个大的数组,都是整型,怎么找出最大的前 10 个数
  • 知道数据结构里面的常见的数据结构
  • 找出数组中第 k 大的数组出现多少次,比如数组【1,2, 4,4,3,5】第二大的数字是 4,出现两次,所以返回 2
  • 合并两个有序数组
  • 给一个数,去一个已经排好序的数组中寻找这个数的位 置(通过快速查找,二分查找)

快速排序、归并排序、堆排序、冒泡排序、插入排序、选择排序、希尔排序、桶排序、基数排序、Timsort这十种,这类考核点要么是算法的时间、空间复杂度、稳定度,要么是直接手写代码,故在理解算法原理的同时,对JS语言版的排序算法代码也要加强记忆。

  • 二叉树层序遍历
  • B 树的特性,B 树和 B+树的区别
  • 尾递归
  • 如何写一个大数阶乘?递归的方法会出现什么问题?
  • 把多维数组变成一维数组的方法
  • 知道的排序算法 说一下冒泡快排的原理
  • Heap 排序方法的原理?复杂度?
  • 几种常见的排序算法,手写
  • 数组的去重,尽可能写出多个方法
  • 如果有一个大的数组,都是整型,怎么找出最大的前 10 个数
  • 知道数据结构里面的常见的数据结构
  • 找出数组中第 k 大的数组出现多少次,比如数组【1,2, 4,4,3,5】第二大的数字是 4,出现两次,所以返回 2
  • 合并两个有序数组
  • 给一个数,去一个已经排好序的数组中寻找这个数的位 置(通过快速查找,二分查找)

[外链图片转存中…(img-vrRvauU4-1719216362154)]

  • 11
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值