回顾: css: 层叠样式表 作用: 渲染页面 提供工作效率,将html和样式分离 和html的整合 方式1:内联样式表 通过标签的style属性 <xxx style="..."/> 方式2:内部样式表 通过head的子标签Style子标签 <style type="text/css"> 选择器{ 属性:值; 属性1:值1; } </style> 方式3:外部样式表 有一个独立css文件.后缀名:.css 在html中通过link标签导入 选择器: id选择器 html元素有id属性且有值 <xx id="d1"> css中通过 # 导入 #d1{...} 类选择器 html元素有class属性且有值 <xx class="c1"> css中通过 . 导入 .c1{...} 元素选择器 css中通过标签名即可 xx{...} 属性选择器 html元素有一个属性且有值 <xx att="val1"> css中通过元素名[属性="值"]使用 xx[att="val1"]{...} 后代选择器 选择器 后代选择器 锚伪类(了解) ////////////////// 字体 文本 背景 列表 分类(clear display:none block inline) 框模型: 一个元素外边有内边距 边框 外边距 顺序:上右下左 ////////////////////////////////////// js javascript 脚本语言 解释性 基于对象 事件驱动函数 js的组成: ECMAScript(语法) BOM(浏览器对象模型) DOM(文档对象模型) html和js的整合 方式1:内部编写js <script type="text/javascript">js代码</script> 方式2: 外部有一个独立的js文件 后缀名:.js 在html中通过script的src属性导入 <script src="js的路径"></script> 注意: 一旦使用了src属性,那么script标签体中的js代码将不再执行了. 变量: var 变量名=初始化值; 数据类型: 原始类型(5种) Undefined Null String 用引号引起来的内容 Number Boolean 通过typeof可以判断一个值或者变量是否是原始类型,若是原始类型,还可以判断属于那种. typeof 变量|值 引用类型 运算符: 关系运算符: 两边值都是字符串,比较ascii码 两边都是数字,和java一样 一边是数字,一遍是字符串形式的数字, 可以比较 一边是数字,一遍是普通字符串 可以比较 值永远是false 等性运算符 "66"==66 true "666"===666 false js的语句 if while for 和java一样 ////////////////// 获取元素: var obj=document.getElementById("id值"); 获取元素的value属性 var val=document.getElementById("id值").value; 设置元素的value属性 document.getElementById("id值").value="sdfsdf"; 获取元素的标签体 var ht=document.getElementById("id值").innerHTML; 设置元素的标签体 document.getElementById("id值").innerHTML="ssss"; 定义函数: 方式1:function 函数名(参数列表){函数体} 方式2: var 函数名=function(参数列表){函数体} 注意: 函数声明的时候不用声明返回值类型 参数列表上不要写参数类型 通过return结束方法和将值返回 事件: onclick 单击 onsubmit 表单提交 onload 页面加载成功或者元素加载成功 事件和函数绑定 方式1:通过元素的事件属性 <xxx onxxx="函数名(参数列表)"> 方式2:派发事件 document.getElementById("id值").onxxx=function(){...}; document.getElementById("id值").onxxx=函数名; ///////////////////////////////// 案例1-定时弹出广告 需求: 打开页面后4秒,展示广告,2秒之后,该广告隐藏.再停2秒,继续展示. 技术分析: 定时器 定时器(BOM-window对象) setInterval(code,毫秒数):周期执行 setTimeout(code,毫秒数):延迟多长事件后 只执行一次. 清除定时器 clearInterval(id): clearTimeout(id): 步骤分析: 1.确定事件 2.编写函数 a.获取元素 b.操作元素 //////////////////////// 1.html页面,先把广告隐藏 2.页面加载成功事件 onload 3.编写函数 定时器: 操作元素: document.getElementById("") 操作css属性 document.getElementById("id").style.属性="值" 属性:就是css中属性 css属性有"-" 例如:backgroud-color 若有"-" 只需要将"-"删除,后面第一个字母变大写即可 注意: 只要是window对象的属性和方法,可以把window省略 window.onload 等价于 onload window.setInterval() 等价于 setInterval() //////////////////// bom(浏览器对象模型)总结 所有的浏览器都有5个对象 window:窗口 location:定位信息 (地址栏) history:历史 window对象详解: 如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象, 并为每个框架创建一个额外的 window 对象。 常用的属性: 通过window可以获取其他的四个对象 window.location 等价域 location window.history 等价于 history ... 常用的方法 消息框 alert("...."):警告框 confirm("你确定要删除吗?"):确定框 返回值:boolean prompt("请输入您的姓名"):输入框 返回值:你输入的内容 定时器 设置定时器 setInterval(code,毫秒数):周期执行 setTimeout(code,毫秒数):延迟多长事件后 只执行一次. 例如: setInterval(showAd,4000); serInterval("showAd()",4000); 清除定时器 clearInterval(id): clearTimeout(id): 打开和关闭 open(url):打开 close():关闭 ///////////////////////// location:定位信息 常用属性: href:获取或者设置当前页面的url(定位信息) location.href; 获取url location.href="...";设置url 相当于 a标签 ////////////////////// history:历史 back();后退 forward():向前 ★go(int) go(-1) 相当于 back() go(1) 相当于 forward() ////////////////////////////////////// 案例2-表单校验plus 需求: 提示信息不用弹出框,将信息追加在文本框后面 技术分析: 确定事件 表单提交的时候 onsubmit 文本框失去焦点的时候 onblur 编写函数 获取元素 document.getElementById("id值"); 操作元素(获取元素的值,操作标签体,操作标签value属性) ///////////////// 步骤分析: 1.表单 2.表单提交的时候 确定事件 onsubmit() 3.校验用户名和密码 4.获取用户名和密码的对象及值 5.判断内容,当为空的时候,获取响应的span元素 往span元素中显示错误信息 //////////////////////// 注意: 在方法中(function()) this指代的是当前的元素(当前dom对象) 例如: <input type="text" name="username" id="username" onblur="loseFocus(this.value)"> 方法: function loseFocus(obj){ alert(obj); } ///////////////////////////// 事件总结: 常见的事件: 焦点事件:★ onfocus onblur 表单事件:★ onsubmit onchange 改变 页面加载事件:★ onload 鼠标事件(掌握) onclick 鼠标事件(了解) ondblclick:双击 onmousedown:按下 onmouserup:弹起 onmousemove:移动 onmouserover:悬停 onmouserout:移出 键盘事件(理解) onkeydown:按下 onkeyup:弹起 onkeypress:按住 //////////// 绑定事件: 方式1: 元素的事件属性 方式2: 派发事件 /////////////////// 了解 阻止默认事件的发生 阻止事件传播 ///////////////// 案例3-隔行换色 需求: 一个表格,隔一行换一个色 技术分析: 事件:onload 获取元素:dom操作 /////////////// 获取元素: document.getElementById("id"):通过id获取一个元素 document.getElementsByTagName("标签名"):通过标签名获取一种元素(多个)返回一个数组 Array: 常用属性: length:数组的长度 //////////////////////// 步骤分析: 1.html表格一加载的时候 确定事件 onload 2.编写函数 a.获取元素(所有的tr元素) b.操作(若当前行是偶数的话加一个样式,若是奇数的话,加另一个样式) //////// //页面加载成功 onload=function(){ //1.获取所有的tr var arr=document.getElementsByTagName("tr"); //alert(arr); //alert(arr.length); //2.判断奇偶数 添加不同的样式 遍历数组 for(var i=1;i<arr.length;i++){ if(i%2==0){ arr[i].style.backgroundColor="#FFFFCC"; }else{ arr[i].style.backgroundColor="#BCD68D"; } } } ////////////////////////// 案例4:全选或者全不选 步骤分析: 1.确定事件 最上面那个复选框的单击事件 onclick 2.编写函数:让所有的复选框和最上面的复选框状态保持一致 a.获取最上面这个复选框选中状态 通过checkbox的checked属性即可 b.获取其他的复选框,设置他们的checked属性即可 可以通过以下两种方案获取元素 document.getElementsByClassName():需要给下面所有的复选框添加class属性 document.getElementsByName():需要给下面所有的复选框添加name属性 ////////////////////////////////// dom(文档对象模型) 当浏览器接受到html代码的时候,浏览器会将所有的代码装载到内存中,形成一棵树(document树) 节点(Node) 文档节点 document 元素节点 element 属性节点 attribute 文本节点 text 获取节点: 通过document可以获取其他节点: 常用方法: document.getElementById("id值"):获取一个特定的元素 document.getElementsByTagName("标签名"):通过标签名获取一种元素(多个) document.getElementsByClassName("class属性的值"):通过class属性获取一类元素(多个) document.getElementsByName("name属性的值"):通过name属性获取一类元素(多个) 设置获取获取节点的value属性 dom对象.value;获取 dom对象.value="";设置 设置或者获取节点的标签体 dom对象.innerHTML;获取 dom对象.innerHTML="";设置 获取或者设置style属性 dom对象.style.属性;获取 dom对象.style.属性="";设置 获取或者设置属性 dom对象.属性 ///////////////////////// 对于htmldom的操作若在js或者htmldom 查找不到 去查找xml dom 关于文档的操作 在 xml dom 的document中 关于元素的操作 在 xml dom 的element中 appendChild(dom对象):在一个元素下添加孩子 ////////////////////////////////////// 案例5-左右选中. 需求: 技术分析: 1.确定事件,按钮的单击事件 2.编写函数: 点击移动单|多个的: a.获取左边选中的选项 select对象.options--数组 遍历数组 判断是否选中 option对象.selected b.将其追加到右边的下拉选中 rightSelect对象.appendChild(option); 点击移动所有的 a.获取左边的所有的选项 b.一个个的追加过去 /////////////////////// 案例6-省市联动 需求: 选中省的时候,动态的查询当前省下的所有市,然后展示在市的下拉选中 技术分析: 数组: //////////////////////// 数组: 语法: new Array();//长度为0 new Array(size);//指定长度的 new Array(e1,e2..);//指定元素 非官方 var arr4=["aa","bb"]; 常用属性: length 注意: 数组是可变的 数组可以存放任意值 常用方法:(了解) 存放值:对内容的操作 pop():弹 最后一个 push():插入 到最后 shift():删除第一个 unshift():插入到首位 打印数组: join(分隔符):将数组里的元素按照指定的分隔符打印 拼接数组: concat():连接两个或更多的数组,并返回结果。 对结构的操作: sort();排序 reverse();反转 //////////////////////// 步骤分析: 1.省的下拉选 的选项中添加value属性 当成数组的索引 2.初始化市 3.选择省的时候,onchange事件 4.编写函数, 通过获取的索引获取对象的市的数组 this.value 遍历数组,将数组里面的每个值组装option 添加到select中即可 ////////////////////////////// 引用类型总结: 原始类型中的String Number Boolean都是伪对象,可以调用相应的方法 Array:数组 String: 语法: new String(值|变量);//返回一个对象 String(值|变量);//返回原始类型 常用方法: substring(start,end):[start,end) substr(start,size):从索引为指定的值开始向后截取几个 charAt(index):返回在指定位置的字符。 indexOf(""):返回字符串所在索引 replace():替换 split():切割 常用属性:length Boolean: 语法: new Boolean(值|变量); Boolean(值|变量); 非0数字 非空字符串 非空对象 转成true Number 语法: new Number(值|变量); Number(值|变量); 注意: null====>0 fale====>0 true====>1 字符串的数字=====>对应的数字 其他的NaN Date: new Date(); 常用方法: toLocalString() RegExp:正则表达式 语法: 直接量语法 /正则表达式/参数 直接量语法 /正则表达式/ new RegExp("正则表达式") new RegExp("正则表达式","参数") 参数: i:忽略大小写 g:全局 常用方法: test() :返回值为boolean Math: Math.常量|方法 Math.PI Math.random() [0,1) 全局: ★ decodeURI() 解码某个编码的 URI。 encodeURI() 把字符串编码为 URI。 Number():强制转换成数字 String():转成字符串 parseInt():尝试转换成整数 parseFloat():尝试转换成小数 eval() 计算 JavaScript 字符串,并把它作为脚本代码来执行。 ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// 上午回顾: BOM(浏览器对象模型) window对象:窗口 注意: 若是window对象的属性和方法,调用的时候可以省略window 常用属性: 通过window可以获取其他的四个对象 window.location 等价于 location 常用方法: 消息框 alert() 警告框 confirm() 确认框 返回值:boolean prompt() 输入框 返回值:输入的内容 定时器 设置 setInterval(code,毫秒数):循环 setTimeout(code,毫秒数):延迟 只执行一次 清除 clearInterval(id): clearTimeout(id): 打开和关闭 open(url) close() location对象:定位信息 地址栏 常用属性: href:获取或者设置当前页面的url location.href:获取 location.href="url":设置 相当于超链接 history对象:操作历史 常用方法: go() //////////////////////////// 事件: 焦点:★ onfocus:获取焦点 onblur:失去焦点 表单事件:★ onsubmit: form表单里的 onchange:改变(下拉选) 页面或者对象加载:★ onload: 鼠标:★ onclick:单击 键盘: onkeyup: dom(★) 获取元素的方法(4个) document 操作元素的属性 dom对象.属性; 引用类型: array string substring 全局: 编码2个 强制转化 Number String 尝试 parseXxx eval() 解析字符串形式的js代码 Math random()