黑马程序员WEB03-JS篇笔记

合集下载

黑马程序员_javaweb讲义和笔记资料

黑马程序员_javaweb讲义和笔记资料

黑马程序员_javaweb讲义和笔记资料
黑马程序员提供的JavaWeb讲义和笔记资料非常详尽,对于学习JavaWeb开发的人来说非常有用。

这些资料涵盖了JavaWeb开发的基础
知识,包括HTML、CSS、JavaScript、Servlet、JSP等方面的内容。

以下是一些黑马程序员提供的JavaWeb讲义和笔记资料的介绍:
1. JavaWeb基础笔记:这是一份详细的笔记,涵盖了JavaWeb开发的基
础知识,包括HTTP协议、Web服务器、Web应用程序架构等方面的内容。

2. JavaWeb进阶笔记:这是一份进阶的笔记,主要介绍了JavaWeb开发
的高级技术,包括多线程、JavaMail、JNDI等方面的内容。

3. JavaWeb实战笔记:这是一份实战的笔记,通过多个案例介绍了JavaWeb开发的实际应用,包括文件上传、在线聊天室、在线购物等方面
的内容。

4. JavaWeb讲义:这是一份详细的讲义,介绍了JavaWeb开发的整个流程,包括开发环境的搭建、HTML/CSS/JavaScript的使用、Servlet/JSP的使用等方面的内容。

这些资料都是黑马程序员精心整理的,非常适合初学者和有一定Java基础的开发者使用。

通过学习这些资料,可以快速掌握JavaWeb开发的基本知识和技能,提高自己的开发能力。

黑马程序员JavaScript知识点(二)

黑马程序员JavaScript知识点(二)

一. 三元运算符(三目运算符)结构:boolean表达式? 操作一:操作二;作用:与if else结构一样问题:得到三个大数中最大的数。

二. 循环语句:_x0002_1 while循环特点:可以重复完成同样的事情代码while(条件语句/boolean){//重复执行的代码块}console.log();执行:当程序运行到while的时候,会判断while后面括号中的内容,如果内容为true,会执行下面的代码,如果为内容为false,则不执行这段代码,跳过这段代码执行下面的内容。

、注意:1)如果在写循环的时候一定要有循环的结束条件,如果没有就是死循环,就是一Bug._x0002_2终止循环:break_x0002_3立即结束本次循环,开始下一次循环:continue_x0002_4 do while:与while是一样的,唯一的区别就是while先判断再做,do-while,先做再判断;代码:do{//要循环执行的代码块}while (条件语句/boolean)执行过程:代码从上到下执行的过程中如果遇到了do就会先执行一次do后面的代码,执行之后再通过while来进行判断,如果判断通过那么再执行一次,如果判断不通过却结束循环。

_x0002_5 for循环:作用:也要用来执行一个循环的代码。

代码:for ( var i = 0 ; boolean表达式; i++ ){//循环的代码体}执行过程:当代码从上到下执行到for的时候,代码会先声明变量i并赋值1,会进行判断var i = 1分号后面的判断,判断i是否小于等于100,执行下面的循环代码,当下面的代码执行完成之后,再回过来执行i++.这样就完成了一次循环,进行第二次循环,就不用再次声明i,只需要判断i是否小于等于100就行了,如果满足,执行下面的代码,再回来i++;。

黑马程序员JavaEE就业班同步笔记Web前端技术:JavaScript高级

黑马程序员JavaEE就业班同步笔记Web前端技术:JavaScript高级

黑马程序员JavaEE就业班同步笔记Web前端技术:JavaScript高级1.1案例五:使用JS完成复选框的全选和全不选的效果1.1.1需求:在实际的开发中一条记录一条记录进行删除的话,效率很低,有的时候需要一起删除多条记录.需要通过在表格之前设置一个复选框的形式进行勾选复选框.点击一个删除的按钮.1.1.2分析:1.1.2.1技术分析:1.1.2.2步骤分析:【步骤一】创建一个HTML页面.【步骤二】确定事件:复选框的单击事件.【步骤三】触发一个函数【步骤四】在函数中,获得上面的复选框是否被选中.【步骤五】如果选中,下面的所有的复选框都被选中.【步骤六】如果不选中,下面的所有的复选框都不选中.1.1.3代码实现:function checkAll(){// 获得上面的复选框var selectAll = document.getElementById("selectAll");// 判断这个复选框是否被选中.var ids = document.getElementsByName("ids");if(selectAll.checked == true){// 上面复选框被选中:获得下面所有的复选框,修改checked属性for(var i = 0 ;i<ids.length;i++){ids[i].checked = true;}}else{// 上面复选框没有被选中:获得下面所有的复选框,修改checked属性for(var i = 0 ;i<ids.length;i++){ids[i].checked = false;}}}1.1.4总结:1.1.4.1JS中的DOM对象:【DOM的概述】什么是DOMDOM:Document Object Model:文档对象模型.将一个HTML的文档加载到内存形成一个树形结构,从而操作树形结构就可以改变HTML的样子.DOM的使用:知道document,element,attribute中的属性和方法【DOM的常用的操作】获得元素:* document.getElementById(); -- 通过ID获得元素.* document.getElementsByName(); -- 通过name属性获得元素.* document.getElementsByT agName(); -- 通过标签名获得元素.创建元素:* document.createElement(); -- 创建元素* document.createTextNode(); -- 创建文本添加节点:* element.appendChild(); -- 在最后添加一个节点.* element.insertBefore(); -- 在某个元素之前插入.删除节点:* element.removeChild(); -- 删除元素【使用DOM完成对ul中添加一个li元素】function addElement(){var city = document.getElementById("city");// 创建一个元素:var liEl = document.createElement("li");// 创建一个文本节点:var text = document.createTextNode("深圳");// 添加子节点:liEl.appendChild(text);city.appendChild(liEl);}1.2案例六:使用JS完成省市联动的效果:1.2.1需求:在注册页面上有两个下拉列表,左侧省份的下拉列表一改变,右侧的市的下拉列表也要跟着发生变化.1.2.2分析:1.2.2.1技术分析:【JS中创建数组】【JS的事件】下拉的列表的改变的事件.onchange. 【JS的DOM的操作】创建元素:添加元素:1.2.2.2步骤分析【步骤一】创建一个HTML文件.【步骤二】确定事件:onchange事件.【步骤三】触发函数,在函数中编写代码.【步骤四】获得到所选择的省份的信息.【步骤五】根据选择的省份的信息获得到对应的数组中的市的数据.【步骤六】遍历数组中的市的信息.【步骤七】创建元素,创建文本,最后将元素添加到第二个列表中.1.2.3代码实现:// 定义数组:二维数组:var arrs = new Array(5);arrs[0] = new Array("杭州市","绍兴市","温州市","义乌市","嘉兴市");arrs[1] = new Array("南京市","苏州市","扬州市","无锡市");arrs[2] = new Array("武汉市","襄阳市","荆州市","宜昌市","恩施");arrs[3] = new Array("石家庄市","唐山市","保定市","邢台市","廊坊市");arrs[4] = new Array("长春市","吉林市","四平市","延边市");function changeCity(value){// 获得到选中的省份的信息.var city = document.getElementById("city");// 清除第二个列表中的内容:for(var i=city.options.length;i>0;i--){city.options[i] = null;}// city.options.length = 0;// alert(value);for(var i= 0 ;i< arrs.length;i++){if(value == i){// 获得所有的市的信息.for(var j=0;j<arrs[i].length;j++){// alert(arrs[i][j]);// 创建元素:var opEl = document.createElement("option");// <option></option>// 创建文本节点:var textNode = document.createTextNode(arrs[i][j]);// 将文本的内容添加到option元素中.opEl.appendChild(textNode);// 将option的元素添加到第二个列表中.city.appendChild(opEl);}}}}1.2.4总结:1.2.4.1JS的内置对象:Array:Boolean:Date:* ?time=new Date().getTime(); Math对象:String对象:* charAt();* indexOf();* lastIndexOf();* split();* replace();* substring();* substr();1.2.4.2JS的全局函数:* parseInt();* parseInt(“11”);* parseFloat();* parseFloat(“32.09”);* 编码和解码的方法:// 解码* decodeURI();* decodeURIComponent();// 编码* encodeURI();* encodeURIComponent();eval函数:* 将一段内容当成是JS的代码执行. //var sss = “alert(‘aaaa’)”; //eval(sss);。

【黑马程序员济南】 前端与移动开发就业班笔记JS进阶:Day02

【黑马程序员济南】 前端与移动开发就业班笔记JS进阶:Day02

【黑马程序员济南】前端与移动开发就业班笔记JS进阶:Day02今天我们需要学习JS中循环语句的使用,以及数组的遍历、排序。

for循环练习<script>/*** @author 传智播客*///打印正方形/*for (var i = 1; i <= 10; i++) {for (var j = 1; j <= 10; j++) {document.write("★");}document.write("<br/>");}*///打印直角三角形/*for (var i = 1; i <= 10; i++) {for (var j = 1; j <= i; j++) {document.write("★");}document.write("<br/>");}*///打印9 * 9 乘法表for (var i = 1; i < 10; i++) {for (var j = 1; j <= i; j++) {document.write(j + "*" + i + "=" + i * j);document.write(" ");}document.write("<br/>");}</script>数组的声明通过构造函数声明(更加通用)var arr = new Array("a", "b","c");通过字面量声明(更加简便)var arr =["a","b","c"];数组的赋值和取值赋值数组名[索引号] = 值//arr[0]=100取值(通过数组名和索引即可取到对应的值)数组名[索引号] // arr[0]数组的遍历数组的索引是从0开始的数组的长度可以通过arr.length获取由于数组的索引从0开始,所以最后一个值的索引为arr.length-1通过for循环遍历数组/*** @author 传智播客*/for (var i = 0; i <= arr.length - 1; i++) {console.log(arr);}可简写为:/*** @author 传智播客*/for (var i = 0; i < arr.length; i++) {console.log(arr);}数组length的应用往数组中添加新元素,数组的length会增加通过给arr.length赋值可以改变数组的长度冒泡排序/*** @author 传智播客*/var arr = [65, 97, 76, 13, 27, 49, 58];//循环控制趟数for (var i = 0; i < arr.length - 1; i++) {//控制两两比较的次数for (var j = 0; j < arr.length - 1; j++) {//两两比较从小到大排序if (arr[j] > arr[j + 1]) {//交换位置var tmp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = tmp;}}}冒泡排序最终版/*** @author 传智播客*///将一个数组中的值从小到大排列//var arr = [65, 97, 76, 13, 27, 49, 58];var arr = [1, 2, 3, 4, 5];var outer = 0var inner = 0;for (var i = 0; i < arr.length - 1; i++) {//var wocai = "我猜这次一排列的是一个已经排好了的数组";var flag = true;//假设这次排列的是一个已经排好了的数组for (var j = 0; j < arr.length - 1 - i; j++) {if (arr[j] > arr[j + 1]) {//wocai = "猜错了";flag = false;var temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}inner++;}outer++;//if (wocai !== "猜错了") {if (flag) {break;}}console.log(arr);console.log(inner);console.log(outer);今天的讲解到此结束,如果小伙伴们还有什么不懂的可以在下方留言,或者去黑马程序员官网下载最新资料进行学习。

web学习笔记(2021年整理精品文档)

web学习笔记(2021年整理精品文档)

web学习笔记编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(web学习笔记)的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为web学习笔记的全部内容。

1.<meta〉元信息标记,定义页面的关键字,页面说明,刷新等。

<meta name=”keywords” content=”关键字”><meta name=”description” content=”页面说明">〈meta name="author” content="作者”〉2。

改变链接字的颜色<body link="未访问过的字颜色" vlink=”访问后的颜色" > 3.列表有序<ol〉〈type=“1"start=“3"〉<li></li></ol〉无序<ul〉〈type="square”><li>名称〈li〉</ul>目录〈dir><li>名称〈/li><dir>菜单<menu〉〈li>名称〈/li〉</menu>定义列表〈dl〉<dt〉定义〈/dt〉〈dd〉定义的内容</dd></dl〉4.<sub〉上标和〈sup>下标5。

<vspace="”〉垂直边距,用于图文混排6.〈b></b>加粗<i>〈/i>斜体7.利用<caption〉</caption〉(放在〈table>下)在表格上方加标题8。

黑马程序员_javaweb讲义和笔记资料

黑马程序员_javaweb讲义和笔记资料

黑马程序员_javaweb讲义和笔记资料一、简介黑马程序员是一家专业的IT培训机构,提供全面的编程技术培训服务。

javaweb是其中的一门重要课程,本文为黑马程序员_javaweb讲义和笔记的资料整理。

二、javaweb基础知识1. Java语言概述Java语言的特点和优势,Java开发环境的搭建等。

2. Servlet技术Servlet的基本概念、生命周期、Servlet容器等。

3. JSP技术JSP的基本语法、JSP指令、JSP内置对象等。

4. MVC设计模式MVC设计模式在javaweb开发中的应用和实践。

三、javaweb开发流程1. 需求分析分析项目需求,明确开发目标和功能要求。

2. 数据库设计设计数据库表结构,确定数据存储方式和关系。

3. 技术选型根据项目需求和开发要求,选择合适的技术框架和工具。

4. 编码实现使用Java语言和相关技术进行编码实现。

5. 测试调试运行和调试项目,确保功能的正确性和稳定性。

6. 部署上线将项目部署到服务器上线,提供给用户访问和使用。

四、javaweb开发常用框架和工具1. Spring框架Spring框架的介绍和核心特性,以及在javaweb开发中的应用。

2. SpringMVC框架SpringMVC框架的详细讲解,包括请求映射、数据绑定、视图解析等。

3. MyBatis框架MyBatis框架的使用方法和技巧,以及与数据库的集成。

4. Maven工具Maven的基本使用和配置,常用插件介绍。

五、javaweb开发中的常见问题和解决方案1. 数据库连接异常分析数据库连接异常的原因和解决方法。

2. 页面跳转问题页面跳转的实现方式和常见错误排查。

3. 表单数据验证表单数据验证的常用技术和插件,提高数据输入的准确性和安全性。

4. 性能优化优化javaweb应用的性能,减少响应时间和资源占用。

六、实例项目提供一个实例项目,通过对该项目的讲解和分析,帮助学员理解和掌握javaweb开发的方法和技巧。

【黑马程序员】Web前端学习心得总结(二)

【黑马程序员】Web前端学习心得总结(二)

【黑马程序员】Web前端学习心得总结(二)九:什么是事件委托为什么要用事件委托事件委托事件委托就是利用事件冒泡机制指定一个事件处理程序,来管理某一类型的所有事件。

即:利用冒泡的原理,把事件加到父级上,触发执行效果。

好处:只在内存中开辟了一块空间,节省资源同时减少了dom操作,提高性能对于新添加的元素也会有之前的事件为什么要用事件委托:一般来说,dom需要有事件处理程序,我们都会直接给它设事件处理程序就好了,那如果是很多的dom需要添加事件处理呢?比如我们有100个li,每个li都有相同的click点击事件,可能我们会用for循环的方法,来遍历所有的li,然后给它们添加事件,那这么做会存在什么影响呢?在JavaScript中,添加到页面上的事件处理程序数量将直接关系到页面的整体运行性能,因为需要不断的与dom节点进行交互,访问dom的次数越多,引起浏览器重绘与重排的次数也就越多,就会延长整个页面的交互就绪时间,这就是为什么性能优化的主要思想之一就是减少DOM操作的原因;如果要用事件委托,就会将所有的操作放到js程序里面,与dom的操作就只需要交互一次,这样就能大大的减少与dom的交互次数,提高性能;每个函数都是一个对象,是对象就会占用内存,对象越多,内存占用率就越大,自然性能就越差了(内存不够用,是硬伤,举个例子:页面上有这么一个节点树,div>ul>li>a;比如给最里面的a加一个click点击事件,那么这个事件就会一层一层的往外执行,执行顺序a>li>ul>div,有这样一个机制,那么我们给最外面的div加点击事件,那么里面的ul,li,a做点击事件的时候,都会冒泡到最外层的div上,所以都会触发,这就是事件委托,委托它们父级代为执行事件。

原生js的window.onload与jq的$(document).ready(function(){})的区别1.执行时间window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。

黑马程序员_PHP_课程同步笔记day10:JS小游戏

黑马程序员_PHP_课程同步笔记day10:JS小游戏

【黑马程序员】PHP课程同步笔记day10:JS小游戏通过前几周的学习我们对JS有一定的了解,今天的内容就是将之前的学习的内容在小游戏中应用,希望大家能够在小游戏中进一步提升自己的js水平。

JS小游戏:满天都是小星星:代码:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml" xml:lang="zh-cn"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /><title>满天都是小星星</title><style type="text/css">#span1{border:1px solid red;width:100px;display:inline-block;height:20px;overflow:hidden;}#span2{display:inline-block;height:20px;}</style><script type="text/javascript">var count=0;//代表星星的个数var dingshiqi;//定时器名字var shijian=0;//时间var gametime;//记录游戏时间定时器//设置body的颜色window.onload=init;function init(){//document.body.bgColor="black";}//var dingshiqi=window.setInterval("star()",500);//创建星星的函数function star(){//创建星星var obj=document.createElement("img");obj.src="images/xingxing.gif";//设置星星的宽度var w=Math.floor(Math.random()*(90-30+1))+30;//设置随即位置//var x=e.clientX;//鼠标的x坐标//var y=e.clientY;//鼠标的y坐标var x=Math.floor(Math.random()*1300)+30;var y=Math.floor(Math.random()*500)+30;obj.style.position="absolute";obj.style.top=y+"px";obj.style.left=x+"px";//把obj加到body中document.body.appendChild(obj);//给对象绑定事件obj.onclick=removestar;//记录星星个数count++;//调用函数告诉玩家有多少个星星countxingxing();//改变进度条document.getElementById("span2").style.width=count*5+"px";document.getElementById("span2").style.backgroundColor="red"; }//删除星星的函数function removestar(){this.parentNode.removeChild(this);count--;countxingxing();}//点击开始游戏的函数function startxingxing(){dingshiqi=window.setInterval("star()",500);gametime=window.setInterval("youxishijian()",1000); }//暂停游戏function zanting(){alert("暂停游戏");}//星星个数function countxingxing(){var shu=document.getElementById("count");if(count>20){alert("游戏结束");window.clearInterval(dingshiqi);window.clearInterval(gametime);}shu.innerHTML=count+"个星星";}//记录游戏时间function youxishijian(){var obj=document.getElementById("jishi");shijian++;obj.innerHTML="游戏进行"+shijian+"秒";}</script></head><body><span id="count">0个星星</span><input type="button" value="点击开始游戏" onclick="startxingxing()"> <input type="button" value="点击暂停游戏" onclick="zanting()"><span id="jishi">游戏进行0秒</span><span id="span1"><span id="span2"></span></span></body></html>实现效果:点我啊小游戏:代码:<!DOCTYPE html><html><head><meta http-equiv="content-type" content="text/html" charset="utf-8"> <title>小游戏</title><script type="text/javascript">var number=1;function mv(){if (number==1){mv2();number=2;}else if(number==2){mv3();number=3;}else if(number==3){mv4();number=4;}else if(number==4){mv1();number=1;}}function mv1(){document.getElementById('d1').style.left=0+"%";document.getElementById('d1').style.right=88+"%";document.getElementById('d1').style.top=0+"%";document.getElementById('d1').style.bottom=76+"%";function mv2(){document.getElementById('d1').style.left=88+"%";document.getElementById('d1').style.right=0+"%";document.getElementById('d1').style.top=0+"%";document.getElementById('d1').style.bottom=76+"%"; }function mv3(){document.getElementById('d1').style.top=76+"%";document.getElementById('d1').style.bottom=0+"%";document.getElementById('d1').style.left=88+"%";document.getElementById('d1').style.right=0+"%";}function mv4(){document.getElementById('d1').style.bottom=0+"%";document.getElementById('d1').style.left=0+"%";document.getElementById('d1').style.top=76+"%";document.getElementById('d1').style.right=88+"%";</script><style type="text/css">#d1{width: 160px;height:160px;background-color: #66ffff;border: 2px solid yellow;border-radius:10px 10px 10px 10px ;box-shadow: 2px 2px 10px #cccccc;position: absolute;top: 0%;left: 0%;right:86%;bottom:86%;}#input{margin-top:45px;margin-left: 30px;width: 101px;height: 68px;background-color: #66ffff;color: #ffffff;font-weight: 700;border: 0px;}</style></head><body><div id="d1" ><input id="input" type="button" value="来呀,点我呀!" onmouseover="mv()"/></div></body></html>效果:黑马程序员济南中心编著。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第3章WEB03- JS篇1.1案例一:完成对注册页面的数据的简单校验.1.1.1需求:对注册页面的数据进行非空的简单校验!!!如果有某个值没有输入,点击提交,弹出一个对话框进行提示!!1.1.2分析:1.1.2.1技术分析:【JS的概述】什么是JavaScript:运行在浏览器端的脚本语言!JavaScript的历史:JavaScript的组成:ECMAScript:JavaScript的基本的语法BOM:Browser Object Model :DOM:Document Object Model :其他的脚本语言:JavaScript,ActionScript,FlexJS的用途:使页面更加丰富,使页面动起来!!!【JS的基本语法】区分大小写:弱变量类型语言:(与Java不同)* Java* int i = 3;* String s = “abc”;* JavaScript:* var i = 3;* var s = “abc”;分号可有可无:变量命名:【JS的数据类型】JS将数据类型分成两类:* 原始类型:* undefined:未定义类型* boolean:布尔类型* number:数字类型* string:字符或字符串.* null:空* 引用类型:* 对象类型.对象类型默认值是null.【JS的运算符】JS中的运算符与Java中基本一致!JS中有一个 === 全等于.全等于是类型和值都一致的情况下才为true.【JS的语句】JS中的语句与Java的语句一致!【JS的通常开发的步骤】JS通常都由一个事件触发.触发一个函数,定义一个函数.获得操作对象的控制权.修改要操作的对象的属性或值.定义函数:* function 函数名称(){// 函数体}* window.onload = function(){}常用事件:onclick,ondblclick,onmouseover,onmouseout,onload...【JS的引入方式】通常两种方式:一种:页面内直接编写JS代码,JS代码需要使用<script></script>.二种:将JS的代码编写到一个.js的文件中,在HTML中引入该JS代码即可.1.1.3代码实现:<script>// alert("Hello!");function checkForm(){// 获得文本框的值:var username = document.getElementById("username").value;// var val = username.value;// alert(username);if(username == ""){alert("用户名不能为空!");return false;}// 校验密码:var password = document.getElementById("password").value;if(password == ""){alert("密码不能为空");return false;}// 校验确认密码:var repassword = document.getElementById("repassword").value;if(repassword != password){alert("两次密码输入不一致!");return false;}// 校验邮箱:var email = document.getElementById("email").value;// JS校验正则表达式就有两个方法:String对象中的match方法,一个是正则对象中的test方法.// str.match("正则表达式"); 正则.test("字符串");if(!/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/.test(email)){alert("邮箱格式不正确!");return false;}}</script>1.1.4总结:将JS的代码定义成一个文件引入:<script src="../js/check.js"></script>获得页面中的元素:* document.getElementById(“”);正则的匹配:JS中有两种匹配正则的方式:* 使用String对象中的match方法.* 使用正则对象中的test方法.1.2案例二:使用JS完成图片滚动的效果: 1.2.1需求:使用JS完成该效果:1.2.2分析:1.2.2.1技术分析:【HTML的window对象】* setInterval(); :每隔多少毫秒执行某个表达式.* setInterval(“change()”,5000);* setTimeout(); :隔多少毫秒执行一个该表达式.* setTimeout(“change()”,5000);1.3案例三:使用JS完成图片的轮播的效果:1.3.1需求:1.3.2分析:1.3.2.1技术分析:【JS中的Window对象的定时的操作】* 设置定时的方法Setinterval()指定周期内调用函数setTimeout()指定毫秒后调用函数* 清除定时的方法ClearInterval()clearTimeout()1.3.2.2步骤分析:【步骤一】创建一个HTML文件【步骤二】当页面加载的时候开始计时.使用onload事件.【步骤三】编写onload事件触发的函数.【步骤四】获得操作图片的控制权.【步骤五】修改图片的src的属性.1.3.3代码实现:<script>window.onload = function(){// 设置定时:window.setInterval("changeImg()",5000);}var i = 1;function changeImg(){i++;// 获得图片的控制权:if(i > 3){i=1;}var img1 = document.getElementById("img1");img1.src="../img/"+i+".jpg";}</script>1.4案例四:使用JS实现定时弹出广告定时隐藏.1.4.1需求:在网站的首页上定时弹出一个广告,并且定时隐藏掉.1.4.2分析:1.4.2.1技术分析:【JS的window对象的定时的方法】* 设置定时的方法Setinterval()指定周期内调用函数setTimeout()指定毫秒后调用函数* 清除定时的方法ClearInterval()clearTimeout()【CSS的显示和隐藏的属性】* display* block:显示元素:* none:隐藏元素:1.4.2.2步骤分析:【步骤一】创建一个HTML页面【步骤二】确定事件:页面的加载事件【步骤三】触发一个函数,编写该函数.【步骤四】在函数中设置定时操作.定时执行一个显示的函数.【步骤五】清空定时,重新设置定时,5秒钟隐藏.1.4.3代码实现:var time;window.onload = function(){time = window.setInterval("show()",5000);}// 显示广告的方法function show(){// 获得广告的div元素:var adDiv = document.getElementById("adDiv");adDiv.style.display = "block";window.clearInterval(time);time = window.setInterval("hide()",5000);}// 隐藏广告的方法:function hide(){// 获得广告的div元素:var adDiv = document.getElementById("adDiv");adDiv.style.display="none";window.clearInterval(time);}1.4.4总结:1.4.4.1JS中的BOM对象:Bom对象:WindowNavigatorHistoryLocationWindow对象的方法* alert(); --弹出对话框* setInterval(); --按照指定周期内调用函数* setTimeout(); --在指定毫秒数后调用函数* clearInterval(); --取消setInterval指定的周期* clearTimeout(); --取消clearTimeout指定的毫秒数* confirm(); --弹出一个确认窗口* prompt(); --弹出一个可输入的对话框* open(); --打开一个新窗。

Navigator :包含的是浏览器的信息.* appName() –-返回浏览器名称* userAgent() --返回客户端发送给服务器的头部值。

Screen:用来获得屏幕信息:* availHeight() --屏幕高度(不含win任务栏)* availWidth() --屏幕宽度(不含win任务栏)* height() --屏幕高度* width() --屏幕宽度History:浏览器的历史对象:* back() –-history的前一个url* forward() –-history的后一个url* go() –-history的某个urlLocation:包含URL信息的对象* host() –-设置或返回主机名或当前url端口号* href() –-设置或返回完整url* protocol() –-设置或返回当前url协议1.5使用JS完成注册页面表单提示及校验1.5.1需求:注册页面之前是弹出对话框的形式进行校验的这种方式不是特别友好!可以将错误信息显示到文本框的后面.而且当光标落入到文本框的时候,提示的信息.1.5.2分析:1.5.2.1技术分析:【JS的输出】* document.getElementById(“”).innerHTML=”HTML的代码”;* document.write(“”);【JS的事件】* onfocus :获得焦点.* onblur :失去焦点.* onsubmit :提交的时候.1.5.2.2步骤分析:【步骤一】创建一个html文档【步骤二】在要去校验的文本框上添加事件.【步骤三】触发函数【步骤四】在函数中向文本框后的html的区域中写入一段提示的内容.1.5.3代码实现:function tips(id,content){document.getElementById(id+"Span").innerHTML = "<font color='red'>"+content+"</font>";}function checkForm(){// 判断用户名不能为空:var username = document.getElementById("username").value;if(username == ""){document.getElementById("usernameSpan").innerHTML = "<font color='red'>用户名不能为空!</font>";return false;}var password = document.getElementById("password").value;if(password == ""){document.getElementById("passwordSpan").innerHTML = "<font color='red'>密码不能为空!</font>";return false;}}1.5.4总结:1.5.4.1JS的事件的总结:* onload :* onclick :* onsubmit :* onfocus :* onblur :* onchange :下拉列表改变事件.* ondblclick:双击某个元素的事件.键盘操作事件:* onkeydown :* onkeyup :* onkeypress:鼠标操作事件:* onmousemove:* onmouseout:* onmouseover:* onmousedown* onmouseup1.6案例五:使用JS完成后台数据展示的隔行换色的表格:1.6.1需求:在后台展示数据的页面上,通常使用表格标签进行数据的展示.没有背景的表格比较难看的,可以使用JS控制表格的隔行换色.1.6.2分析:1.6.2.1技术分析:【使用JS获得表格的行数】* 获得到控制的表格元素:* var tab1 = document.getElementById(“tab1”);* var len = tab1.rows.length;1.6.2.2步骤分析:【步骤一】创建一个HTML页面:可以使用后台设计页面.【步骤二】确定事件:onload事件.【步骤三】触发一个函数.在这个函数中获得操作的表格.【步骤四】获得表格中的所有的行数.【步骤五】遍历表格的行数.【步骤六】判断是否是奇数行还是偶数行.1.6.3代码实现:function changeColor(){// 获得要操作的对象的控制权:var tab1 = document.getElementById("tab1");// 获得表格的所有的行数:var count = tab1.rows.length;// 遍历每行:for(var i = 0;i<count;i++){if(i % 2 == 0){// 偶数行tab1.rows[i].style.backgroundColor = "#00FF00";}else{// 奇数行tab1.rows[i].style.backgroundColor = "#00FFFF";}}}1.6.4总结:1.6.4.1表格中的tbody和thead标签function changeColor(){// 获得操作的表格的控制权:var tab1 = document.getElementById("tab1");// 获得tbody中的所有的行.var len = tab1.tBodies[0].rows.length;for(var i = 0;i< len ;i++){if(i % 2 == 0){tab1.tBodies[0].rows[i].style.backgroundColor = "green";}else{tab1.tBodies[0].rows[i].style.backgroundColor = "gold";}}}1.7案例六:使用JS完成复选框的全选和全不选的效果1.7.1需求:在实际的开发中一条记录一条记录进行删除的话,效率很低,有的时候需要一起删除多条记录.需要通过在表格之前设置一个复选框的形式进行勾选复选框.点击一个删除的按钮.1.7.2分析:1.7.2.1技术分析:1.7.2.2步骤分析:【步骤一】创建一个HTML页面.【步骤二】确定事件:复选框的单击事件.【步骤三】触发一个函数【步骤四】在函数中,获得上面的复选框是否被选中.【步骤五】如果选中,下面的所有的复选框都被选中.【步骤六】如果不选中,下面的所有的复选框都不选中.1.7.3代码实现:function checkAll(){// 获得上面的复选框var selectAll = document.getElementById("selectAll");// 判断这个复选框是否被选中.var ids = document.getElementsByName("ids");if(selectAll.checked == true){// 上面复选框被选中:获得下面所有的复选框,修改checked属性for(var i = 0 ;i<ids.length;i++){ids[i].checked = true;}}else{// 上面复选框没有被选中:获得下面所有的复选框,修改checked属性for(var i = 0 ;i<ids.length;i++){ids[i].checked = false;}}}1.7.4总结:1.7.4.1JS中的DOM对象:【DOM的概述】什么是DOMDOM:Document Object Model:文档对象模型.将一个HTML的文档加载到内存形成一个树形结构,从而操作树形结构就可以改变HTML的样子. DOM的使用:知道document,element,attribute中的属性和方法【DOM的常用的操作】获得元素:* document.getElementById(); -- 通过ID获得元素.* document.getElementsByName(); -- 通过name属性获得元素.* document.getElementsByTagName(); -- 通过标签名获得元素.创建元素:* document.createElement(); -- 创建元素* document.createTextNode(); -- 创建文本添加节点:* element.appendChild(); -- 在最后添加一个节点.* element.insertBefore(); -- 在某个元素之前插入.删除节点:* element.removeChild(); -- 删除元素【使用DOM完成对ul中添加一个li元素】function addElement(){var city = document.getElementById("city");// 创建一个元素:var liEl = document.createElement("li");// 创建一个文本节点:var text = document.createTextNode("深圳");// 添加子节点:liEl.appendChild(text);city.appendChild(liEl);}1.8案例七:使用JS完成省市联动的效果:1.8.1需求:在注册页面上有两个下拉列表,左侧省份的下拉列表一改变,右侧的市的下拉列表也要跟着发生变化.1.8.2分析:1.8.2.1技术分析:【JS中创建数组】New Array()New Array(size)New Array(element0,element1,……)【JS的事件】下拉的列表的改变的事件.onchange.【JS的DOM的操作】创建元素:添加元素:1.8.2.2步骤分析【步骤一】创建一个HTML文件.【步骤二】确定事件:onchange事件.【步骤三】触发函数,在函数中编写代码.【步骤四】获得到所选择的省份的信息.【步骤五】根据选择的省份的信息获得到对应的数组中的市的数据.【步骤六】遍历数组中的市的信息.【步骤七】创建元素,创建文本,最后将元素添加到第二个列表中.1.8.3代码实现:// 定义数组:二维数组:var arrs = new Array(5);arrs[0] = new Array("杭州市","绍兴市","温州市","义乌市","嘉兴市");arrs[1] = new Array("南京市","苏州市","扬州市","无锡市");arrs[2] = new Array("武汉市","襄阳市","荆州市","宜昌市","恩施");arrs[3] = new Array("石家庄市","唐山市","保定市","邢台市","廊坊市");arrs[4] = new Array("长春市","吉林市","四平市","延边市");function changeCity(value){// 获得到选中的省份的信息.var city = document.getElementById("city");// 清除第二个列表中的内容:for(var i=city.options.length;i>0;i--){city.options[i] = null;}// city.options.length = 0;// alert(value);for(var i= 0 ;i< arrs.length;i++){if(value == i){// 获得所有的市的信息.for(var j=0;j<arrs[i].length;j++){// alert(arrs[i][j]);// 创建元素:var opEl = document.createElement("option");// <option></option>// 创建文本节点:var textNode = document.createTextNode(arrs[i][j]);// 将文本的内容添加到option元素中.opEl.appendChild(textNode);// 将option的元素添加到第二个列表中.city.appendChild(opEl);}}}}1.8.4总结:1.8.4.1JS的内置对象:Js内置对象ArrayBooleanDateMathNumberStringRegexpFunctionEventsArray:* concat()连接数组* join()所有元素放入一个字符串* reverse()元素顺序反转* sort()元素排序* toString()转为字符串* value()返回原始值Boolean:* toString()转为字符串* valueOf()返回原始值Date:* Date()当前日期和时间* getDate()date对象返回一月中的某一天* getTime()返回从1970至今的毫秒数* parse()返回从1970至指定日期的毫秒值Math对象:* abs(x)绝对值* radom()返回0~1的随机值* valueOf()返回Math对象原始值String对象:* charAt();返回在指定位置的字符* indexOf();检索字符串* lastIndexOf();从后向前搜索字符串* split();把字符串分割为字符串数组* replace();替换与正则表达式匹配的子串* substring();提取字符串中两个指定的索引号之间的字符* substr();从起始索引号提取字符串中指定数目的字符1.8.4.2JS的全局函数:* parseInt();解析字符串返回一个整数* parseInt(“11”);* parseFloat();解析字符串返回一个浮点数* parseFloat(“32.09”);* 编码和解码的方法:// 解码* decodeURI();* decodeURIComponent();// 编码* encodeURI();* encodeURIComponent();eval()解析js字符串并作为脚本运行:* 将一段内容当成是JS的代码执行.//var sss = “alert(…aaaa‟)”;//eval(sss);。

相关文档
最新文档