🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] # 案例1:获取页面中的五个按钮 ![](https://img.kancloud.cn/6e/fa/6efa87d0615fa6b1066104c67f8ff96b_432x134.png) ## 知识点:节点对象Element ``` Live Node = document.getElementById("id") Live Node List = document.getElementsByClassName("class") Live Node List = document.getElementsByName("name") Live Node List = document.getElementsByTagName("tagname") Static Node = document.querySelector("selector") Static Node List = document.querySelectorAll("selector") ``` # 案例2:实现网页计算器 ![](https://img.kancloud.cn/f8/42/f842fff11eeab6766be97c4a41dca3c9_297x187.gif) ## 知识点1:获取/修改值和文本 ![](https://img.kancloud.cn/7e/43/7e437b850b8aa2a3ad1b1e792166d8de_339x145.png) > ele.innerHTML或ele.innerText = newText > ele.value = newValue ## 知识点2:函数调用及传参 * 通过事件调用 * 通过链接调用 > 函数形参不需要var > 函数返回值需要return ## 知识点3:全局函数eval | 方法名 | 描述 | | --- | --- | | **isNaN(X)** | 判断X是否为非数字 | | **eval(X)** | 计算X字符串(作为脚本代码执行) | * [ ] 试一试 ![](https://img.kancloud.cn/f9/65/f965539a5a987815182d8259a61b37ab_311x107.png) # 案例3:实现网页开关灯 ![](https://img.kancloud.cn/58/77/58775cc3b6fc23dee16bbccb1591859f_239x312.gif) > `ele.style.XXX = newValue` > `ele.attr = newValue` ![](https://img.kancloud.cn/0d/35/0d35ffe65bfb298cdc717abf0b3d6f7c_782x216.png) # 案例4:留言板 ![](https://img.kancloud.cn/f4/64/f464b76aeb7d295da63c29686ccc29ef_445x314.png) ## 知识点1:Array初始化 ![](https://img.kancloud.cn/33/45/33457ebf39753d2e19f7aafbd0a7a08c_267x343.png) ## 知识点:Array常用方法 ![](https://img.kancloud.cn/40/0e/400efb42142167625c46482b696dbd29_329x274.png) # 案例5:将URL中的参数提取为对象 ![](https://img.kancloud.cn/8e/1c/8e1c5afc2ba8b3d6827bceea5a9609e7_556x238.png) ## 知识点1:String初始化及常用方法 ![](https://img.kancloud.cn/48/4f/484fd598cd2b1c1d8adcbe52cba93978_390x277.png) 1. 字符长度 `str.length` 2. 字符方法 ``` charAt(index) //获取指定位置处字符 charCodeAt(index) //获取指定位置处字符的ASCII码 str[0] //HTML5,IE8+支持 和charAt(0)等效 ``` 3. 位置方法 ``` indexOf(char) //返回指定内容在元字符串中的位置 lastIndexOf() //从后往前找,只找第一个匹配的 ``` 4. 字符串操作方法 ``` concat() //拼接字符串,等效于+,+更常用 slice() //从start位置开始,截取到end(取不到) substring() //从start位置开始,截取到end(取不到) substr() //从start位置开始,截取length个字符 ``` 5. 其他 ``` trim() //只能去除字符串前后的空白 to(Locale)UpperCase() //转换大写 to(Locale)LowerCase() //转换小写 search() replace() split() 按照特定字符将字符串分割为数组 ``` ## 知识点2:对象的创建和访问 ``` var x = {}; var car = {type:"Fiat", model:500, online:false}; var obj= { name1: "value1", name2 : function() { return this.name1 + " " + this.name2; } }; ``` ## 知识点3:创建对象并访问 * [ ] 访问对象属性 ``` obj.name1; obj["name2"]; ``` * [ ] 访问对象方法并执行 ```res = obj.funName();``` * [ ] 试一试 ![](https://img.kancloud.cn/6b/39/6b3912d87b8068b680ac597bebbeb91d_699x378.png) > 读取了对象不存在的属性,属性值为undefined ## 知识点4:URL编码解码 | 方法名 | 描述 | | --- | --- | | **encodeURI(X)** | 将URI编译为ASCII码 | | **decodeURI(X)** | 解析编译之后的ASCII码 | # 案例6:使用Math随机生成一种颜色 ![](https://img.kancloud.cn/9b/23/9b23dd38022f7b24b2899165816bbde3_323x186.png) > 试一试: ![](https://img.kancloud.cn/49/55/49555f65299cd122fefda99f6f3c1a4e_448x112.gif) # 案例7:显示网页时钟 ![](https://img.kancloud.cn/e7/68/e768df2211a74eb19cf7f9a5403aaa5a_412x182.gif) > 注意:日期不足两位,前面补0 ## 知识点1:Date初始化 ![](https://img.kancloud.cn/d7/39/d7395b4df74589d5bdf4396cf8463061_859x282.png) ## 知识点2:常用方法Date() ![](https://img.kancloud.cn/d8/a7/d8a714cd3660c9486e8690ca274f2935_674x673.png) # 案例8:验证用户名 > 规则:字母开头,包含字母、数字、下划线长度为4-16位。 ![](https://img.kancloud.cn/99/cd/99cd4519db7b7bb0cd7ca4909534f73d_342x206.png) ## 知识点:正则表达式创建与验证 ``` var reg = new RegExp(); reg.test(String); ``` > test 检索字符串中指定的值。返回 true 或 false。 ## 知识点:其他正则表达式方法 > 1. search 检索与正则表达式相匹配的值。 > 2. match 找到一个或多个正则表达式的匹配。 > 3. replace 替换与正则表达式匹配的子串。 > 4. split 把字符串分割为字符串数组。 ``` var string = new String(); string.search(reg); ``` ## 试一试:验证手机号 > 规则:以数字1开头的11位数字。 ![](https://img.kancloud.cn/f2/8c/f28c9b9c6c028fd1f5254fedc8aa4d27_293x203.png) > 规则:以0开头的3-4位区号+7-8位座机号码 ![](https://img.kancloud.cn/d9/59/d9595b3f2b139aaae252ff5951421342_339x206.png) ## 试一试:验证银行金额 1. 整数部分不超过15位; 2. 数字不能以0开头,除非整数部分就是0; 2. 可以有小数也可以没有小数; 3. 小数部分最多两位。 ## 试一试:金额转换 ![](https://img.kancloud.cn/a5/bb/a5bbfeeec0fbcafc85eb3c0ce3780cb2_372x152.png) ## 总结: undefined出现的情况 ![](https://img.kancloud.cn/e3/dd/e3dd98d507cc81e6fac0a8cd75d280b1_347x540.png)