- 概述 - JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言 - 作用:给页面添加动态效果,校验用户信息等. - 入门案例 - js和html的整合 - 方式1:内联式 "通过<script></script>标签实现,在标签体中编写js代码即可" - 方式2:外联式 "编写外部的js文件,通过srcipt标签的src属性引入即可" - 注意事项: " script标签可以放在页面的任何位置,一般放在head中 一个页面可以有多个srcipt标签 script标签一旦使用了src属性,它的标签体就会失效" - 组成部分 - ECMAScript:核心语法 - 变量声明 - 格式: var 变量名称 = 初始化赋值; - 注意事项: - var可以省略,但是不建议省略 - 末尾的分号也可以省略,但是不建议 - 数据类型 - 原始类型(5种) - Undefined:undefined - Null:null - Number:一切数字 - String:一切被引号引起来的字符串 - Boolean: true 或 false - 运算符typeof "用来判断给定值的数据的所属类型 例如: typeof age;" - 引用类型:javaScript第二天内容 - 运算符 - 等性运算符 - == != "判断数值" - === !== "判断数值和类型" - 关系运算符 - > < >= <= - 逻辑运算符 - && || ! - 非空对象 非0数字 非空字符串 都为true 其他为false - 语句 "几乎和java一样" - if ... else ... - for(){}方式 - 函数 "用来完成指定操作的代码片段,在java中叫方法,在js中叫函数" - 方式1: 普通函数 " function 函数名称(参数列表){ ... }" - 方式2(匿名函数): "var 函数名称 = function(参数列表){ ... }" - 函数返回值:在函数中直接使用return返回结果即可 - 注意事项:参数列表中的参数可以不写类型 - 事件 "具体的某件事情" - 单击事件: onclick "单击鼠标时触发" - 表单提交事件: onsubmit "提交form表单时触发" - 页面加载成功事件: onload "当页面加载完毕后触发" - 事件和事件源的绑定 - 方式1:绑定事件 " 实现方式:通过标签的事件属性 例如:<xxx onclick="函数名(参数列表)"></xxx>" - 方式2:派发事件 " 实现方式:获取标签对象(元素) 对象.事件名称=function(){}" - 使用步骤: - 1.确定事件 - 2.编写函数 - 获取元素 - 处理元素 - BOM(浏览器对象模型):操作浏览器 - window 窗口 - 常用属性 "通过它获取其他的四个对象 eg:window.history == history 注意:使用window的对象或属性时,window可以省略不写" - 常用方法 - 定时器 - var 定时器id = setInterval() 设置周期执行定时器 - 格式1:setInterval(函数名称,毫秒值); "周期执行,每隔多少毫秒执行一次指定函数" - 注意:每个定时器都会返回一个定时器id,定时器id主要用在清除定时器时. - 格式2:setInterval("函数名称(参数列表)",毫秒值); - "周期执行,每隔多少毫秒执行一次指定函数 可传递参数" - clearInterval() 清除周期执行定时器 - 使用方式:clearInterval(定时器id) "作用:将正在使用的定时器清除" - setTimeout() 单次执行定时器 - 格式1:setTimeout(函数名称,毫秒值); "单次执行,多少毫秒后执行指定函数,只执行一次" - 格式2:setTimeout("函数名称(参数列表)",毫秒值); "单次执行,多少毫秒后执行指定函数,只执行一次 可传递参数" - 注意:每个定时器都会返回一个定时器id,定时器id主要用在清除定时器时. - clearTimeout() - 使用方式:clearTimeout(定时器id) - 警告框 - alert(); - 对话框 - prompt(); "可以传入两个参数,第一个为提示信息,第二个为默认值" - 确认框 - confirm(); "可以传入一个参数,为确认信息" - 扩展 - 打开 open(url); - 关闭 colse(); - history 历史 - 常用方法 - forward(); 下一个页面 - back(); 返回上一个页面 - go(Number); ★ - go(number); 向后跳转几个页面 - go(-number); 向前跳转几个页面 - location 连接 ★★ - 常用属性 - href - location.href; 得到当前页面的路径 - location.href=url; 跳向指定的页面 - navigator 了解 - screen 了解 - DOM(文档对象模型):操作文档 (明天内容) - 获取一个元素(标签)对象 - var obj = document.getElementById("id值"); "通过id获取一个标签对象" - 获取对象中的value值 "通过对象的value属性 对象.value;" 回顾: javaScript:直译式的脚本语言,直接嵌入html使用即可 js和html整合: 方式1:内联式 通过script标签实现,直接在标签体中编写js代码即可 方式2:外联式(首先要编写外部的js文件,后缀名以*.js结尾) 通过script标签的src属性实现 js组成部分: ECMAScript:核心语法 变量声明 var 变量名称 = 初始化值; 数据类型 原始类型:(5种) Undefined: undefined var age; Number: String: Null: null Boolean: typeof 对象; 引用类型: 运算符 等性运算符: == != === !== 关系运算符: > < >= <= 逻辑运算符: && || ! "abc" || false "abc" || "123" "abc" && "123" "abc" && false 语句 if("123"){} for(){} 函数 方式1:普通函数 function 函数名(){} 方式2:匿名函数 var 函数名 = function (参数,参数){} 调用函数: 函数名(参数,参数); 返回值: return 返回值; 事件 onclick:单击事件 onsubmit:表单提交事件 onload:页面加载成功事件 事件和事件源绑定 方式1:绑定事件 通过标签的事件属性 <xxx onclick = "func()"></xxx> 方式2:派发事件 a.获取事件源(获取标签对象) var 对象 = document.getElementById("id"); b.给事件源派发事件 对象.事件名称 = function(){ .... } BOM:操作浏览器 window:窗口 属性: 通过window获取其他的四个对象即可.使用window的属性或方法的时候window可以省略不写 方法: 定时器: 周期执行: var interId = setInterval(); setInterval("函数名称()",毫秒值); setInterval(函数名称,毫秒值); clearInterval(id); 单次执行: var timeId = setTimeout(); clearTimeout(id); 警告框: 对话框: 确认框: 打开和关闭: history:历史 方法: forward(); back(); go(number); location:连接 ★★ 属性: href location.href; location.href = url; DOM:操作文档 var 对象 = document.getElementById("id"); 对象.属性名称; 获取 对象.属性名称 = 值; 设置 ///////////////////////////////// 案例1-完善表单校验 需求分析: 当表单提交的时候,校验表单中的用户名和密码是否符合格式,如果不符合,则在相应的输入框后面填写提示信息且不允许表单提交, 反之可以提交 技术分析: 事件 正则表达式: DOM对象: /////////////////////////// DOM: 操作value属性 获取value属性的值: 获取一个标签对象: var 标签对象 = document.getElementById(); 获取value属性的值: 标签对象.value; 设置value属性的值: 获取一个标签对象: var 标签对象 = document.getElementById(); 设置value属性的值 标签对象.value = 值; 操作标签体: 获取标签体内容: 获取一个标签对象: var 标签对象 = document.getElementById(); 获取标签体的内容: 标签对象.innerHTML; 设置标签体内容: 获取一个标签对象: var 标签对象 = document.getElementById(); 设置标签体的内容: 标签对象.innerHTML = "<xxx>值</xxx>"; 正则表达式: 1.编写正则表达式 用户名:var zz = /^[a-z0-9_-]{3,16}$/; 密码:var zz = /^[a-z0-9_-]{6,18}$/; 校验为空: /^\s*$/ 2.校验 var str = "123"; zz.test(str); Boolean /////////////////////// 步骤分析: 1.确定事件(表单提交事件) <form onsubmit="retrun checkForm()"></form> <form id="formId"></form> 2.编写checkForm函数 function checkForm(){ //0/设置全局开关 var flag = true; //a.获取用户名和密码输入框对象 var 对象 = document.getElementById("id"); //b.获取用户名和密码的值 var val = 对象.value; //c.编写正则表达式 //d.校验 if(zz.test(val)){ //校验不通过 给对应的span标签中填写提示信息 flag = false; }else{ //校验通过 给对应的span标签中填写提示信息 } //e.返回值 return flag; } 案例2-表格各行换色 需求分析: 当页面加载成功后,给表格的奇数行和偶数行添加不同的背景颜色 技术分析: 事件 DOM: ////////////////////// 步骤分析: 1.确定事件(页面加载成功事件) onload = function(){ } 2.编写匿名函数 a.获取当前页面所有行对象 var trObjArr = document.getElementsByTagName("tr"); b.遍历数组对象,给计数行和偶数行添加不同的背景颜色 for(var i=0;i<trObjArr.length;i++){ if(i%2==0){ trObjArr[i].style.backgroundColor = "颜色"; }else{ trObjArr[i].style.backgroundColor = "颜色"; } } 案例3-复选框全选和全不选 需求分析: 当点击头部的复选框的时候,要使其他复选框的状态和头部的保持一致. 技术分析: 单击事件 DOM 操作元素的checked属性 ///////////////////////////// 步骤分析: 1.确定事件(单击事件) 给头部的复选框添加单击事件 2.编写函数 a.获取头部复选框状态 对象.checked; b.获取其他的复选框对象 c.遍历其他的复选框对象数组,分别给每一个复选框对象设置checked属性 案例4-省市二级联动 需求分析: 当省份的下拉选改变的时候,根据选中的省份查询其所对应的市,将所对应的市,展示到市的下拉选中. 技术分析: 改变事件 数组 Dom操作 ///////////////////// 步骤分析: 1.确定事件(改变事件) 给省份的下拉选添加改变事件 2.编写changePro函数 function changePro(){ a.获取选中省份所对应的市数组(value) var cityArr = arr[value]; b.获取市的下拉选对象 var cityObj = document.getElementById("cityId"); c.遍历市数组,将每一个市拼成option追加到市的下拉选中 cityObj.innerHTML += ""; }