### JavaScript #### 1.DOM 操作 ##### 1.1 DOM 简介 + DOM (document object model 文档对象模型): 是 HTML 整个页面的文本内容的对象 + Document 中每一个元素都可以认为是一个 Element 对象 + `document.all` : 当前页面所有标签 + `document.images` : 当前页面所有 img 标签对象 + `document.forms` : 当前页面所有 form 表单标签对象 + `document.links` : 当前页面所有链接 ##### 1.2 元素获取(document内置方法) 1. `.getElementById()` : 获取页面上设置 id 属性的元素,获取到的是一个 HTML 对象,然后将其赋值给一个变量 ```html

你好哥们

/*

你好哥们

*/ ``` 2. `.getElementByClassName()` : 通过类名获取元素,返回数组对象 ```html

1

2

3

/* HTMLCollection(3) 0: p.x 1: p.x 2: p.x length: 3 */ ``` 3. `.getElementsByTagName()` : 通过标签名获取元素对象,返回类数组对象 ```html

1

2

3

/* HTMLCollection(3) 0: p.x1 1: p.x2 2: p.x3 length: 3 */ ``` 4. `.getElementsByName()` : 获取当前页面所有指定 name 值的标签 ```html
1
2
3
/* NodeList(2) 0: div.x1 1: div.x2 length: 2 */ ``` ##### 1.3 样式操作 + `document.getElementByID` : 获取的是单个对象时 + 通过 style 修改样式,style 后面可以加当前标签可以用的所有 CSS 属性 ```html
``` + `document.getElementsById` 或 ``document.getElementsByName`` 或 `getElementsByTagName()`: 获取对象列表 + 通过索引或循环后加 style ```html
  1. Python
  2. Linux
  3. Shell
  4. MySql
  5. HTML
  6. CSS
  7. JavaScript
``` + 通过索引获取元素对象 ```html
1
2
3
``` + 设置样式属性步骤 1. 获取元素 : 确定获取到的是元素对象还是包含元素对象的数组 2. 设置元素样式 ##### 1.4 属性操作 1. `.hasAttribute("判断属性")` : 判断指定元素是否有指定属性 ```html
1
2
3
``` 2. `.hasAttributes()` : 判断指定元素是否具有属性 ```html
1
2
3
``` 3. `.setAttribute(“属性名”, "属性值1 属性值2")` : 设置属性,属性名,值 ```html Title ``` 4. `.getAttribute("属性名")` : 获取元素指定属性的值 ```html Title ``` 5. `.removeAttribute("属性名")` : 删除元素的指定属性 ```html ``` ##### 1.5 文本操作 + innerHTML : 设置和查看标签内容,包含 HTML 样式 + innerText : 设置和查看标签内的纯文本内容 ```html
``` ##### 1.6 操作元素 1. 获取和添加元素 | 方法 | 说明 | | --------------------- | ------------------------------ | | `.createElement("")` | 创建对象,类型自己设置 | | `.createTextNode("")` | 创建文本节点,文本内容 | | `.cloneNode()` | 克隆节点 | | `.removeChild()` | 删除节点 | | `.appendchild()` | 在指定标签的子元素尾部添加元素 | 2. 添加文本框 ```html
``` 3. 添加 input 输入框 ```html
``` 4. 克隆 ```html
``` 5. 删除节点 ```html
``` #### 2. 事件 + Js 事件 | Js 事件 | 事件说明 | | ----------- | ------------------------------ | | onabort | 图像加载被中断 | | onblur | 元素失去焦点 | | onchange | 域的内容被改变 | | onclick | 当用户单击某个对象是调用的事件 | | ondblclick | 当用户双击某个对象是调用的事件 | | onerror | 在加载文档或图像时发生错误 | | onfocus | 元素获得焦点 | | onkeydowm | 某个键盘按键被按下 | | onkeypress | 摸个键盘按键被按下并松开 | | onkeyup | 某个键盘按键被松开 | | onload | 一张页面或一幅图片完成加载 | | onmousedown | 鼠标按钮被按下 | | onmousemove | 鼠标被移动 | | onmouseout | 鼠标从某元素移开 | | onmouseover | 鼠标移到某元素上 | | onmouseup | 鼠标按键被松开 | | onresize | 重置按钮被点击 | | onselect | 文本被选中 | | onsubmit | 确认按钮被点击 | | onunload | 用户退出页面 | + 调用事件时考虑该标签对象是否有此事件 + 键盘对应数字编码 (常用) | 数字编码 | 代表按键 | | ----------------- | --------- | | `keycode 48-57` | 0 - 9 | | `keycode 58-90` | A - Z | | `keycode 112-123` | F1 - F12 | | `keycode 8` | Backspace | | `keycode 9` | Tab | | `keycode 13` | Enter | | `keycode 16` | Shift | | `keycode 18` | Alt | | `keycode 32` | Space | | `keycode 35` | End | | `keycode 36` | Home | | `keycode 37-40` | ←↑→↓ | | `keycode 20` | CapsLock | #### 3. 内置对象 ##### 3.1 计时器 1. 定时器
1. `setlnterval()` : 间隔指定的毫秒数不停的执行指定的代码 2. `clearInterval` : 关闭反复执行的定时器 ```html 计时器
1
``` 2. 倒计时器 (倒数指定时间执行) 执行一次 1. `setTimeout()` : 设置计数器 2. `clearTimeout()` : 关闭计时器 ```html 计时器
``` ##### 3.2 时间 + 时间对象在使用时需要使用 new 创建 ```html ``` ##### 3.3 JS 数组 1. 创建数组 ```html ``` 2. 数组的特点 : 可以存储其他类型元素 , 包括函数 ```html ``` 3. 数组方法 1. 添加数据 1. `.push("")` : 在数组尾部添加元素 2. `.unshift("")` : 在数组头部添加元素 ```html ``` 2. 获取数据 1. `数组名[下标]` : 索引获取 2. `数组名.length` : 数组元素长度 3. 删除和修改数据 1. pop 删除并返回最后一个元素 ```html ``` 2. shift 删除并返回第一个元素 ```html ``` 3. `splice(index, howmany, item1, ..., itemX)` : 删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素 1. index : 规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。 2. howmany : 要删除的项目数量。如果设置为 0,则不会删除项目 3. item1, ..., itemX : 向数组添加的新项目 ```html ``` ##### 3.4 JS 数学对象 Math 1. `Math.round()` : 四舍五入 2. `Math.max(arr)` 或 `Math.min(arr)` : 最大值和最小值 3. `Math.floor()` 或 `Math.ceil()` : 向下取整、向上取整 4. `Math.random()` : 0-1 之间随机小数(16位小数) `Math.floor(Math.random()*10)` : 0-9 随机小数 ```html ``` #### 4. JS 正则 + 声明方式 1. new RegExp() : 如果有转义字符必需两次转义 2. /hehe/ : 直接定义 (推荐使用) + 转义字符 | 转义字符 | 使用 | 含义 | | -------- | --------------- | ---------------------- | | \w | var reg = /\w/; | 单个的字母数字下划线 | | \W | var reg = /\W/; | 单个的非字母数字下划线 | | \d | var reg = /\d/; | 单个数字字符 | | \D | var reg = /\D/; | 单个非数字字符 | | \s | var reg = /\s/; | 单个空白字符,例如空格 | | \S | var reg = /\S/; | 单个的非空白字符 | + 元字符 | 转义字符 | 使用 | 含义 | | -------- | ---------------------------------------- | ----------------------------------- | | . | var reg = /./; | 除了换行以外其他任意字符 | | * | var reg = /z*/; | 匹配 0 次或多次 | | + | var reg = /z+/; | 匹配至少 1 次或多次 | | ? | var reg = /\w+?/; | 禁止贪婪 | | {} | var reg = /{5}/;
var reg = /{5, 12}/; | 限制匹配的次数
限制匹配5 - 12 次 | | [] | var reg = /[a-zA-Z0-9]+/; | 字符范围 | | () | var reg = /\d(\w+)\w+/; | 子组,可以有可以没有 | | \| | var reg = /abc\|def\|123/; | 或 | | ^ | var reg = /^\d/; | 限制开始 | | $ | var reg = /a$/; | 限制结尾 | ```html ```