码迷,mamicode.com
首页 > Web开发 > 详细

js jq 笔记小结

时间:2015-08-02 11:43:13      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

Js第一课

 

1vs新建步骤

文件——新建项目——web——空白web应用程序——取名、位置、确定——此时软件会自动生成一个sln文件(解决方案),一解决方案下面可以有多个项目。

点击项目——新建文件夹css和js和image——新建html页面取名demo1

(推荐设置:工具——选项——可以设置下字体和颜色;文本编辑器——把常用的几种语言设上行号颜色提示)


2、什么是js

JavaScript是一种脚本语言,结构简单,使用方便,其代码可以直接放入HTML文档中,可以直接在支持JavaScript的浏览器中运行。JavaSript使得网页的交互性更强,更生动和灵活。当在浏览网页时做了某种操作就产生一个事件,JavaScript所编写的程序可对相应的事件做出反应。


3、怎么运用js

首先在html中指定一个事件,然后对这个事件写js。

如:设置一个按钮,对点击按钮命名一个事件:

<input type="button" value="我是一个按钮" onclick="ShowMsg()" />


4、如何写js

写js可以在外部js文件写,也可以直接在head里面写:

<script type="text/javascript">
  function ShowMsg()
    {
    alert("这是我的第一个js例子");
    }
</script>

 


5、命名规范:为了增强代码的可读性,让团队成员都能看懂,遵循命名规范。

(1)js是区分大小写的,非常严格。

(2)js是弱类型,统一用var声明变量,如:

整形: var iNum=10;

浮点: var fNum=2.23;

布尔: var bMaie=false;

函数: var fnObject=new myFunction();

数组: var aColor=new Array();

字符串: var sMyString="aaaaa";
……


  *弱类型与强类型:

 

js是弱类型,只能用var声明;          c#是强类型,用对应类型声明

弱类型:弱化类型的声明方式;        强类型:强调类型的声明方式

 

弱类型比较方便,但当语句交给浏览器时,浏览器还是需要去判断它是哪种变量,执行效率比强类型低。


(3)注释:

单行注释://

多行注释:/* */


  (4)var可同时声明多个变量:

    var girl="aaaa" , age=19 , male=false;


  (5)js变量不一定需要初始化,可后面用时再赋值:

    var couple;


  (6)变量名称规则:

·首字母必须是字母(大小写均可)、下划线、或者美元符。

·余下的字母可以是下划线、美元符、任意字母或数字字符。

·变量名不能含js关键字。

 

  (7)局部变量和全局变量:

全局变量:在{}外声明的变量,各函数皆可调用;

局部变量:在{}内声明的变量,只有此函数可用;


(8)命名习惯

整形i:     var iNum=10;

浮点f:    var fNum=2.23;

布尔b:   var bMaie=false;

函数fn:  var fnObject=new myFunction();

数组a:   var aColor=new Array();

字符串s:  var sMyString="aaaaa";

(还有:对象o、正则re,此两项不常用,知道即可)

 

6、数据类型详解:

1)字符串String

var sMyString="hello world";

*补充:位置/索引:第一个字母从0开始算,依次后延,空格也算,如上面的"hello world",位置8的字母是r

 

【字符串的属性方法总结】

length      获取字符串长度     alert(sString.length);          结果是11

charAt     获取指定位置的字符  alert(sString.charAt(8));          结果是r

substring    字符串的截取     alert(sString.substring(1));       从位置1截取到最后。结果是ello world

                   alert(sString.substring(1,10));     从位置1截取到位置10(不包含10)。结果是ello worl

substr         字符串的截取         alert(sString.substr(1,6));        从位置1开始截取6位出来。结果是ello w

indexOf       搜某字符位置      alert(sString.indexOf("l"));       查找出第一个l所在的位置,如没有则返回-1。结果是2

                   alert(sString.indexOf("l",4));        从位置4开始,查找出接下来的l所在的位置。结果是9

lastindexOf  从后往前搜某字符位置   与indexOf雷同


2)布尔类型bool(即真或假,true 或 false)

Var bMale=true;      声明 bMale 为真;

If(bMale){           如果 bMale 为真,

alert("a");           则输出a;
}

else{           否则,

alert("b");        则输出b。

}

所以以上程序输出a


  3)数值、及类型转换:

 

    a)数值与字符串相加:

var iNum1=10;

var sNum2="20";

var sNum3=iNum1+sNum2;

alert(sNum3);


可把iNum1变成字符串:

var sNum3=iNum1.toString()+sNum2;

alert(sNum3);


也可把sNum2转成数值:

var iNum2=iNum1+parseInt(sNum2);

alert(iNum2);



    b)与浮点字符串相加:

var iNum1=10;

var sNum2="20.123";

var sNum3=iNum1+sNum2;

alert(sNum3);


当数值和字符串相加时,把sNum2变成整数:

var iNum2=iNum1+parseInt(sNum2);

alert(iNum2);


也可把sNum2变成浮点数:

var iNum2=iNum1+parseFloat(sNum2);

alert(iNum2);


    c)类型转换:

数值转字符串:var sNum1=iNum1.toString();

字符串转数值:var iNum2=parseInt(sNum2);

转浮点:var iNum2=parseFloat(sNum2);

字符串变成数组:var aDate=sMyString.split("-");(var sMyString="2015-07-15";)


  4)数组:存放一个数据集合

a)声明数组的方式:

1、确定数组长度:var aTeam=new Array(12); 数组长度为12

2、不确定数组长度:

var aColor=new Array();

aColor[0]="blue";

aColor[1]="yellow";

aColor[2]="green";

aColor[3]="black";

*上述数组也可写成:

var aColor=new Array("blue","yellow","green","black");

此时输出:alert(aColor[3]);

则得到:black


b)toString,数组变成字符串:

alert(aColor.toString());

此时输出:blue,yellow,green,black


c)join,改连接符:

alert(aColor.join("-").toString());

此时输出:blue-yellow-green-black


d)split,把字符串变成数组:

var sMyString="2015-07-15";

var aDate=sMyString.split("-");

alert(aDate[2]);

此时输出为:15


e)reverse,使数组元素反序出现:

var aColor=new Array("blue","yellow","green","black");

alert(aColor.reverse().toString());

此时输出为:black,green,yellow,blue


f)sort,使数组元素根据a-z顺序排序:

var aColor=new Array("blue","yellow","green","black");

alert(aColor.sort().toString());

此时输出为:black,blue,green,yellow

 

Js第二课

 

1、条件语句:

  (1)比较操作符:

    ==:判断是否相等

    !=:判断是否不相等

    > :判断是否大于

    >=:判断是否大于等于

    < :判断是否小于

    <=:判断是否小于等于


    【例1】

    if(iNum1==iNum2)     //如果iNum1与iNum2相等
    {
      iNum3=iNum1;    //将iNum1的值赋给iNum3
    }
    else{             //否则
      iNum3=iNum2;      //将iNum2的值赋给iNum3
    }


【补充】以上也可写作:

iNum3 = iNum1==iNum2 ? iNum1 : iNum2


这是一个三目运算符,结构为:

a = 判断式 ? 值1 :值2

意思是,先对“判断式”进行判断,若结果为真,则a=值1;若为假,则a=值2。


所以上式可以理解为,先判断“iNum1==iNum2”是否为真:若为真,则iNum3=iNum1;若为假,则iNum3=iNum2。

 

(2)逻辑运算符:

&&:与运算 (a && b:a与b,代表同时满足a与b时,判断式才为真)

||:或运算 (a || b:a或b,代表只要满足a或者满足b,满足其中一项判断式就为真)

!:非运算 (!a :非a,与a相反,意思是 如果a为真,则!a为假;a为假,则!a为真。)


【例2】

if(iNum1>iNum2 && iNum1>iNum3)   //当 iNum1>iNum2 且 iNum1>iNum3 同时满足时,
{
  alert("第一个值最大");         //输出"第一个值最大"
}
if(iNum1>iNum2 || iNum1>iNum3)    //当 iNum1>iNum2 或者 iNum1>iNum3 时,
{
  alert("第一个值不是最小");      //输出"第一个值不是最小"
}
if(!(iNum1>iNum2 || iNum1>iNum3))    //取(iNum1>iNum2 || iNum1>iNum3)的相反意思,
{
  alert("第一个值最大");        //输出"第一个值最小"
}

 

  (3)if语句:

if(条件一)
{
  ……行为一
}

else if(条件二)
{
  ……行为二
}

else if(条件三)
{
  ……行为三
}

……

else
{
  ……行为N
}


此语句可理解为:

如果是“条件一”,则进行“行为一”;

另外,如果是“条件二”,则进行“行为二”;

另外,如果是“条件三”,则进行“行为三”;

……(else if 可以有多个)

以上情况都除外(既不是“条件一”也不是“条件二”也不是“条件三”……),则进行“行为N”。


【补充】


if(条件一)
{
  ……行为一
}

if(条件二)
{
  ……行为二
}

else
{
  ……行为三
}

 

如果是if后面跟着的是else,则此else仅针对它上面最近的那个if。

此语句可理解为:

如果是“条件一”,则进行“行为一”;

如果是“条件二”,则进行“行为二”;

另外,除“条件二”外的情况,则进行“行为三”(此处的else与第一个if无关)


2、弹出框:

  (1)消息框:alert()


  (2)输入框:prompt()

*在输入框里输入的内容,程序按照字符串形式读取。

【例3】

var sInput=prompt("请输入一个1-10之间的数字");   //在弹出的输入框中,输入字符串,存入sInput中

 


  (3)询问框:confirm()

*弹出一个询问框,有“确定”和“取消”的按钮。返回的结果是布尔类型,真或假。

【例4】

if(confirm("你确定喜欢蓝色吗?"))     //询问框询问的内容
{
  alert("你喜欢蓝色");          //选择“确定”,弹出此框
}
else{
  alert("你不喜欢蓝色");         //选择“取消”,弹出此框
}


  (4)字符串转数字:Number()

*对输入框输入的内容,程序都按照字符串形式读取。当我们输入数字,希望以数字方式读取怎么办呢?就可以用Number()

【例5】

var sInput=prompt("请输入一个1-7之间的数字");
var nInput=Number(sInput);

此例子的作用:先将输入框里输入的字符串信息读取到sInput中,然后用Number()将sInput里的字符串信息转换成数字,存放到nInput中。


  (5)判断是否为数字:isNaN()

*用Number()只能转数字,所以我们需要用语句判断一下我们输入的是否是数字,此时用isNaN()

isNaN()的意思就是:is not a number,“不是数字”。


【例6】

var sInput=prompt("请输入一个1-7之间的数字");

var nInput=Number(sInput);

if(isNaN(nInput))        //如果 nInput 不是数字
{
alert("你输入的不是数字");    //则输出“你输入的不是数字”
}
else               //否则
{
alert("你输入的是数字");       //输出“你输入的是数字”
}

 

  (6)在此基础上,还可以顺便判断一下输入的是否是整数,此时用parseInt(),转成整数:

【例7】

var sInput=prompt("请输入一个1-7之间的数字");

var nInput=Number(sInput);

if(isNaN(nInput))
{
  alert("你输入的不是数字");
}
else
{
  if(nInput==parseInt(nInput))   //判断转成数字的值,是否与它取整后的值相等
  {
    alert("你输入的是整数");
  }
  else
  {
    alert("你输入的不是整数");
  }

}


(7)在此基础上,还可以顺便判断一下输入的是否在1-7范围之间,此时用逻辑运算符

【例8】

var sInput=prompt("请输入一个1-7之间的数字");

var nInput=Number(sInput);

if(isNaN(nInput))
{
  alert("你输入的不是数字");
}
else
{
  if(nInput==parseInt(nInput))
  {
    if(nInput>7 || nInput<1)        //判断,如果此数大于7或者小于1
    {
      alert("你输入的不在1-7之间")   //则输出此框
    }
  }
  else
  {
  alert("你输入的不是整数");
  }

}

 

  (8)在此基础上,还可以判断每个输入的值对应执行一个行为,用switch..case:

 

【例9】

switch(nInput)        //判断nInput的值
{
case 1:           //如果为1

alert("星期一");      //则输出“星期一”

break;          //然后跳出循环


case 2:         //如果为2

alert("星期二");      //则输出“星期二”

break;          //然后跳出循环


case 3:         //以此类推
alert("星期三");
break;

case 4:
alert("星期四");
break;

case 5:
alert("星期五");
break;

case 6:
alert("星期六");
break;

case 7:
alert("星期日");
break;

 

default:        //default就是如果没有符合的case就执行它,default并不是必须的

语句;      

 

break;

 

}

*用switch..case的好处是:只需要判断一次后即可退出循环,更加效率。


【补充】break 是跳出所在循环的意思。

 

3、循环语句:


  (1)while

while(..)       //当...时
{
  ..       //进行此操作
}


  (2)do...while

do
{
  ..       //进行此操作
}
while(..)       //当...时


  *以上两种类型,都是当...时,进行...操作


    【例10】

var i=1;

var iSum=0;

while(i<101)     //当i<101时
{
  iSum+=i;   //iSum=iSum+i

  i++;      //i=i+1
}
alert(iSum);

 

解读:

 

答案:iSum=1+2+3+..+100=5050



  (3)for循环:此循环用的最多

【例11】

var iSum=0;

for(var i=1;i<101;i++)
{
  iSum+=i;
}
alert(iSum);

解读:同例10

 

  (4)break:跳出整个for循环体

【例12】

var iSum=0;

for(var i=1;i<101;i++)
{
  if(i==5)
  {
    break;
  }
  iSum+=i;
}
alert(iSum);

解读:当i==5时,break跳出所在for循环体,所以直接输出之前的iSum=1+2+3+4=10


  (5)continue:跳出当前条件下的循环,继续往后执行

【例13】

var iSum=0;

for(var i=1;i<101;i++)
{
  if(i==5)
  {
    continue;
  }
  iSum+=i;
}
alert(iSum);

解读:当i==5时,continue跳出此次循环,直接进入下一个循环i=6,所以iSum=1+2+3+4+6+……+100=5045


  (6)return:有两种用法


    第一种是:结束整个方法体function{}

【例14】

function

{

  var iSum=0;

  for(var i=1;i<101;i++)
  {
    if(i==5)
    {
      return;
    }
    iSum+=i;
  }
  alert(iSum);

}

解读:直接跳出方法体,直接出现在最末尾的}外,所以就不执行了。

 

    第二种是:返回一个值

【例15】

var iSum=0;

for(var i=1;i<101;i++)
{
  if(i==5)        //i=5时,
  {
    i=B(i);        //i=调用方法B(i)的值=10
  }
  iSum+=i;
}
alert(iSum);

}

 

function B(i)
{
  i+=5;          // i=i+5=10
  return i;
}

 

解读:当i=5时,i=调用方法所返回的值=10,所以iSum=1+2+3+4+10+11+12+..+100


  (7)九九乘法表:

 

    

 

 

 

Js第三课

 

jqjs的关系】:jq是对js常用的方法进行封装、简化和优化。

小技巧】ctrl+k+D :VS写代码格式乱了时,整理代码用的快捷键

------------------------------------------------------------------------------------------------------

 

1、获取时间:

方法

描述

getFullYear()

返回四位数的年份

getMonth()

返回月份(从0开始,1月=0,2月=1,...)

getDate()

返回日期(从1开始,此时日期)

getDay()

返回星期几(周日=0,周一=1,...)

getHours()

返回小时数(从0开始,此时小时数)

getMinutes()

返回分钟数(从0开始,此时分钟数)

getSeconds()

返回秒数(从0开始,此时秒数)

getMilliseconds()

返回毫秒数(从0开始,此时毫秒数)

getTime()

返回从GMT时间1970年1月1日0点0分0秒经过的毫秒数(86400000毫秒=1天)

 

  1)写法:

  function MyClick()
  {
    var myDate=new Date();
    alert(myDate.getDay());
  }

 

  2)获取个设定日期之间的天数:

<html>

<head>

<title>Date对象</title>

<script language="javascript">

var startStr = "2014-4-14";

var endStr = "2014-5-1";

var startArray = startStr.split("-");

var endArray = endStr.split("-");

var startDate = new Date(startArray[0], startArray[1] - 1, startArray[2]);

var endDate = new Date(endArray[0], endArray[1] - 1, endArray[2]);

var diffDays = (endDate - startDate) / 86400000;

alert(diffDays);

</script>

</head>

<body>

</body>

</html>

 

2、数值取值:

 

  取最大值:Math.max(18,12,22,33)

  取最小值:Math.min(18,2,2,3,1)

  向上舍入:Math.ceil(25.9)       //它把数字向上舍入到最接近的整数

  向下舍入:Math.floor(25.6)

  四舍五入:Math.round(25.6)

  0~1之间的随机数:Math.random()   //不包括0和1

 

  【例子】

  返回1~100之间的整数包括1和100:  variNum=Math.floor(Math.random()*100+1)

 

3window窗口

 

  1) 打开一个窗口:window.open("http://www.baidu.com", "_blank", "height=300,width=400,top=30,left=140,resizable=yes");

    resizable 是否能通过拖动来调整新窗口的大小 默认为yes

    scrollable 新窗口是否显示滚动条 默认为no 

 

  2) 关闭新建的窗口:window.close()

 

 

  3) window.history.go(-1) //浏览器后退一页

 

    window.history.go //前进一页

 

4、定时器实例

 

  1)隔5秒后打印aaaa:

setTimeout(function(){

    alert("aaaa");

},5000);

 

  *setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。

  效果:5秒后弹出框显示 aaaa,不会循环重复。

 

  2)每隔2秒打印一次数字:

var i=0;

setInterval(function(){

    i++;

    document.write(i);

},2000);

  *setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。

  效果:每隔2秒,依次打印1、2、3、4、5……,看到的界面是:123456789101112……

 

  3)每隔2秒打印一个数,到10为止:

var i=0;

var timer=setInterval(function(){

    i++;

    if(i==10)

    {

        clearInterval(timer);

    }

    document.write(i);

},2000);

  *clearInterval() 方法可取消由 setInterval() 设置的定时器循环。

  效果:只打印到10为止,界面:12345678910

 

  4)每隔1秒,打印1到10再回到1:

var i=0;

var b=true;

var timer=setInterval(function(){

    if(b)

    {

        i++;

    }

    if(b==false){

        i--;

        if(i==1)

        {

            clearInterval(timer);

        }

    }

    if(i==10)

    {

        b=false;

    }

    document.write(i);

},1000);

  *提示:停止定时器只能用clearInterval()方法来停掉,用return等无法停止定时器,定时器会一直存在直到clearInterval()出现为止。

 

 

  5)产生1-100之间随机整数,给5次机会看能不能猜对:

 

var iNumber=Math.floor(Math.random()*100+1);          //产生一个1-100之间的随机整数作为中奖号码

for(var i=1;i<7;i++){

    if(i==6){

        alert("五次机会用完了,中奖号码是:"+iNumber);

        return;

    }

    else{

        var sInput=prompt("请输入1-100之间的一个整数");

        var nInput=Number(sInput);

        if(isNaN(nInput)){                              //判断输入的是不是数字

            alert("你输入的不是一个数字");

        }

        else{

            if(nInput=parseInt(nInput)){              //判断输入的是不是整数

                if(nInput>100||nInput<1)

                {

                    alert("输入的内容不再1-100之间");

                }

                else{

                    if(nInput>iNumber)

                    {

                        alert("你输入的内容太大");

                    }

                    if(nInput<iNumber)

                    {

                        alert("你输入的内容太小");

                    }

                    else

                    {

                        alert("恭喜你中奖了!");

                        return;

                    }

                }

            }

            else{

                alert("你输入的不是一个整数");

            }

        }

    }

}           

 

 

 

[小练习]js冒泡排序法

 

任务:设置随意5个数的数列,用js冒泡排序法使之由小到大排序。

如:[5 3 4 1 2]使之输出为[1 2 3 4 5]。

 

----------------------------------------------------------------------------------

 

【解说:何为冒泡排序法】

 

      所谓冒泡排序法,就是对一组数字进行从大到小或者从小到大排序的一种算法。具体方法是,相邻数值两两交换。从第一个数值开始,如果相邻两个数的排列顺序与我们的期望不同,则将两个数的位置进行交换(对调);如果其与我们的期望一致,则不用交换。重复这样的过程,一直到最后没有数值需要交换,则排序完成。一般地,如果有N个数需要排序,则需要进行(N-1)趟起泡,我们以从小到大排序为例来看一下,具体情况如下图所示:

 

----------------------------------------------------------------------------------

 

【分析】如何用冒泡排序法对[5, 3, 4, 2, 1]排序?

 

(要点:比较大小时,第一次比较第1个数和第2个数,第二次比较第2个数和第3个数,以此类推。)

 

序列:[5, 3, 4, 2, 1]

 

 

第一次循环,5>3,则两者交换位置:3,5,4,2,1

   然后,5>4,则两者交换位置:3,4,5,2,1

   然后,5>2,则两者交换位置:3,4,2,5,1

     然后,5>1,则两者交换位置:3,4,2,1,5

 

  此时,序列变成了[3,4,2,1,5],接下来进行第二个大循环:

 

第二次循环,3<4,则两者不交换位置:3,4,2,1,5

     然后,4>2,则两者交换位置:3,2,4,1,5

     然后,4>1,则两者交换位置:3,2,1,4,5

 

 

  此时,序列变成了[3,2,1,4,5],接下来进行第三个大循环:

 

第三次循环,3>2,则两者交换位置:2,3,1,4,5

     然后,3>1,则两者交换位置:2,1,3,4,5

 

  此时,序列变成了[2,1,3,4,5],接下来进行第四个大循环:

   

第四次循环,2>1,则两者交换位置:1,2,3,4,5

 

  经过4次循环排序,则成功按照由小到大将数字排序完成了。

 

 

所以,总共需要4次循环,(i = 0; i < 数列长度; i++)

每次排序时,比较第j个数和j+1个数(j = 0; j < 数列长度 - i; j++)

当第j个数>第j+1个数时,则让两个数换位。

 

【换位方式】:

当a>b时,想让a和b交换位置,怎么做?

设x,作为中间的过度区。

令x=b,  // 将b的值先存入x中

b=a,   // 将a的值放到b的位置

a=x,   // 将x中存好的b值放到a的位置

则a、b的值交换完成。

 

--------------------------------------------------------------------------

 

【程序】

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>New Document</title>
</head>
<body>
<script language="JavaScript" type="text/javascript">
<!--
var array = [5, 3, 4, 2, 1];
var temp = 0;
for (var i = 0; i < array.length; i++)         //设置总循环数
{
    for (var j = 0; j < array.length - i; j++)    //设置每次循环需要排序几次
    {
        if (array[j] > array[j + 1])          //比较第j个和j+1个数,当j>j+1时进行换位
        {
            temp = array[j + 1];
            array[j + 1] = array[j];          //换位过程
            array[j] = temp;
        }
    }
}
 
for(var i=0;i<array.length;i++){
    document.write(array[i]+" ");            //按现在的顺序输出数列
}
//-->
</script>
</body>
</html>

 

 

 

Jq第一课

 

1、在VS中新建jq项目()

 

2jq选择器写法(与js写法的区别):

  

  【例】对按钮声明一个事件,点击后弹出“aaaa”:

 

  js写法:

    html中:

      <input type=”button” value=”我是一个按钮” onclick=”A()” />    //出现一个点击事件A()

    js中:  

function A()        //声明事件A()的作用

{

        alert(“aaaa”);     //弹出框,显示aaaa

}

 

  jq写法:

    html中:

      <input type=”button” value=”我是一个按钮” id=”btn” />      //设置一个id选择器,名字为btn

    js中:  

$(function(){             //对页面进行加载,加载完后执行jq(要用jq就需要先写这句话,这是固定语句,内部写的才是jq内容)

  $(“#btn”).click(function(){     //查找到id选择器btn,对它执行一个点击click事件,事件用function声明一下,内容为:

       Alert(“aaaa”);         ///弹出框,显示aaaa

  });

});

 

  *相当于js是将整个事情分散到html和js中来写,只能用这么一次;jq是类似css那样设置一个选择器,然后对选择器进行事件设置,可以用很多次。

 

  总结:

  1)Js和jq可以互相转换。

  2)jq执行过程分为下面5个步骤:

a、 对页面进行加载:$(function(){  });

b、 找到对象,如id标签:$(“#btn”)

c、 执行对象相应事件:click();

d、 声明事件:function(){  }

e、 执行事件内容:alert();

   3)优先级问题:当css和jq中同时设置了样式时,遵循就近原则,此时的jq写法,类似于在html标签内加一个style样式来写,所以优先jq。

 

3id选择器:$(“#btn”)

  类似css那样,先在html中声明一个id选择器:id=”btn”,然后在js页面中查找到此id选择器:$(“#btn”),再对它进行事件操作。

 

4class类选择器:$(“.btn”)

  先在html中声明一个class选择器:class=”btn”,然后在js页面中查找到此id选择器:$(“.btn”),再对它进行事件操作。

 

5、标签选择器:$(“tr”)

  根据html中已写出的标签,如tr、td等,在js页面中查找到此标签选择器:$(“tr”),对它进行事件操作。

 

6、奇偶选择器:odd(偶)、even(奇)

 

  $(“tr:odd”), 选择所有位于偶数行的< tr >标记

  $(“tr:even”) ,选择所有位于奇数行的< tr >标记

 

  【例】隔行换色表格:

 

$(function(){             

$(“tr:odd”).css(“background”,”#f8f3d2”);    //偶数行的背景颜色为#f8f3d2

$(“tr:even”).css(“background”,”#ffcdcd”);    //奇数行的背景颜色为#ffcdcd

});

 

6eq(n)选择器:$("X:eq(n)")

  对X标签的第n+1个X标签进行选择,也可以写作$(“X”).eq(n)。

  如:$(“tr”).eq(2),是指第三行。 

 

7nth-child(n)选择器:$(“X:nth-child(n)”) 

  对X标签的第n个X标签进行选择。

  如:$(“td:nth-child(3)”) ,是指第3列;  $(“li:nth-child(4)”),就是第4个li标签。

 

【补充】eq(n)nth-child(n)区别:

  eq(n):对全部X标签不分父级子级依次排序下来的第n+1个X标签进行选择,整体页面只选中一个X标签。

  nth-child(n):对全部X标签会分父级、子级、孙级,每个级别依次排列出第n个标签,将它们全部挑选出来,可选中多个标签。

  详细可见:http://blog.csdn.net/aspnet2002web/article/details/7701335

 

8、子元素选择器:$(“li>a”)

  $(“li>a”),返回<li>标记的所有子元素<a>,但不包括孙标记。

 

  【例】查找li下的所有子标签a,文字颜色为红色:

<ul>

        <li>

               <a href=”#”>XXXX</a>

               <div><a href=”#”>YYYY</a></div>

               <a href=”#”>XXXX</a>

      <a href=”#”>XXXX</a>

   </li>

</ul>

 

$(“li>a”).css(“color”,”red”);

 

效果:仅XXXX为红色,YYYY不变,因为YYYY对于li是孙标签(li>div>a)。

 

9、功能函数前缀:

  $.trim(s); 去掉s字符串的前后空格。

 

  【例】去掉字符串中间空格:(把字符串变成字符数组,然后把空格替换成无)

var s="das  das";

var aChar=s.split("");         //将字符串变为字符数组

for(var i=0; i<aChar.length;i++)

{

              if(aChar[i]==" ")      //当遇到某个字符是空格时

              {

                     s=s.replace(" ","");  //将此空格替换成无(从空格替换到连空格都不是)

              }

}

alert(s);               //打印s

 

10、属性选择器:

  $(“某标签[某属性]”):选出带有某种属性的某标签。如:

  1)$("a[target]")       选出带有target属性的a标签;

  2)$(“a[href=’b.html’]”)   选出带有href=’b.html’属性的a标签;

  3)$(“a[href^=http://]”)   选出以http://开头的a标签;

  4)$(“a[href$=html]”)     选出以html结尾的a标签

  5)$(“a[href*=bbb]”)      选出含有bbb的a标签

 

11、包含选择器

  $(“某标签:has(某属性)”):选出包含某属性的所有某标签。如:$(“li:has(a)”) 包含超链接的所有li标记

 

12、位置选择器

  $(“某标签:某位置”) :选出某特定位置的某标签。如:

1)$(“p:first”) 选择页面中的第一个p标签

2)$(“p:last”) 选择页面中的最后一个p标签

3)$(“p:first-child”)  选择所有的p标记,且这些p标记是其父标记的第一个标记。

4)$(“p:last-child”)  选择所有的p标记,且这些p标记是其父标记的最后一个标记。

5)$(“p:nth-child(odd)”).addClass(“myClass”) 选择所有的p标记,且这些p标记是其父标记的偶数行。

6)$(“p:odd”).addClass(“myClass”) 整个页面的偶数行p标记

7)$(“p:eq(4)”).addClass(“myClass”) 第五个p标记

8)$(“p:gt(n)”).addClass(“myClass”) 第n个(从0开始,不包括n本身)p标记之后的所有p标记,也就是从第n+2个标记开始算,如$(“p:gt(2)”)就是从第四个p开始。

 

13、过滤选择器

  *备注:$(":file") 等价于$(“input[type=file]”)

 

$(“:button”)

所有按钮

$(“:checkbox”)

所有复选框,等同于$(“input[type=’checkbox’]”)

$("div:contains(‘ foo ‘)")

所有包含了文本“foo”的元素

$(“:disable”)

所有被禁用的元素(此写法有问题,代替写法:$("input[disabled=disabled]").attr("value", "aaa");)

$(“:enable”)

所有没有被禁用的元素

$(“:file”)

所有上传控件

$(“:input”)

所有表单元素

$(“:selected”)

所有下拉菜单中被选中的项

$(“:visible”)

所有可见的元素

$(“:submit”)

所有提交按钮

 

14、反向过滤器:

  $(“标签:not(:某属性)”):选出所有不具备某属性的某标签。

 

  意思为:过滤掉所有含有“某属性”的标签,留下其它不具备该属性的标签。

 

  如:$(“a:not(:target)”),意思就是选出所有没写target的a标签。

  

 

 

 

Jq第二课

 

 

1、获取元素:

 

  1).size(): 获取元素的个数。

    $(“img”).size():获取有多少个img。

 

  2).eq():获取元素。

    $(“img[title]”).eq(1):获取第二个带有title属性的img标签。

    也可以写作: $(“img[title]”)[1],此括号里的1代表索引1,所以是对应第二个,一般多用eq()。

 

  3).get() :获得由选择器指定的DOM元素。

    x=$("p").get(0):获取第一个 p 元素的值。

 

  4)index():获取某项标签的索引。

    $(“div”).index($(this)):获取当前操作的这个div在所有div中的索引。

 

  5)find():搜寻标记获得新的集合。

    $(“p”).find(“span”): 在所有p标记元素中搜索span标记,获取一个新的元素集合。

 

  *$(this):表示当前操作对象。

 

  【例】var iNum=$(“li”).index($(“li[title=isaac]”)[0]) ,说明这句话的意思。

    答案: 1)  $(“li”):对所有的li标签进行查找;

        2)  $(“li”).index() :查找()内对象在所有li标签中的索引;

        3)  $(“li[title=isaac]”)[0]:查找第一个拥有“title=isaac”这个title属性的li标签;

        4)  最终解释为:对所有的li标签进行查找,查找出“第一个拥有‘title=isaac’这个属性的li标签"在所有li标签中的索引。

 

2、添加元素:addClass()

 

  $(“img[title]”).addClass(“myClass”) :给所有带有title属性的img标签,添加上myClass的样式。

 

3、删除元素:not()

 

  $(“li[title]”).not(“[title*=isaac]”) :在所有设置了title属性的li标签中,删除掉带有[title*=isaac]这种title属性的li标签。([title*=isaac]:含有isaac字符串的title)

  

注意:not()方法所接受的参数不能包含特定的元素,只能是通用的表达式。
错误:$(“li[title]”).not(“img[title*=isaac]”)
正确: $(“li[title]”).not(“[title*=isaac]”)

 

4、过滤元素:filter()

 

  $(“li”).filter(“[title*=isaac]” ) 等同于 $(“li[title*=isaac]”) :对所有的li标签,过滤筛选出包含有[title*=isaac]这种title属性的标签。

 

注意:

1)filter中的参数,不能直接是等于匹配,只能是前匹配^=,后匹配&=,任意匹配*=

2)filter(函数) 函数要求返回布尔值,对于返回值为true的元素保留,否则去除

 

5、判断元素:is()

 

  var bImge=$(“div”).is(“img”) :判断页面中的div块中是否包含img标记,返回布尔值,是或否。

 

6、遍历元素:each()

 

  *遍历:将选中的标签,一个一个全部经历一遍。

 

  在js中:

$(function(){
  $(“img”).each(function(index){
    this.title="这是第"+index+"副图,id是"+this.id+",name是"+this.name;
  });
});

 

   在html中:

  <img id="img1" name="a1" src="1.jpg">

 

  遍历所有的img,让每一个img都设置一个title属性值为:这是第 n 幅图,id是img1,name是a1

 

7、获取属性/设置属性值:attr()

 

  attr()有2个作用:一个是获取属性值,一个是为属性设置值。

 

  1)获取属性值:

    var s = $("#txt").attr("value");  获取到txt里面的value属性值

 

  2)设置属性值:

    $("#txt").attr({"value":"xxxxx","title":"aaaaa"});  查询txt,为其中的value设值xxxxx的值,为title设值aaaaa的值

 

8、设置元素样式:

 

  1)添加样式:addClass()

 

$("#btn").click(function(){    
  $(this).addClass("b");    //找到id为btn的标签,点击后让它在原样式基础上加上样式b
});

 

  2)删除样式:removeClass()

 

$("#btn").click(function(){    
  $(this).removeClass("b");    //找到id为btn的标签,点击后让它在原样式基础上移除样式b
});

 

  3)写入样式:css()

 

$("#btn").click(function(){    
  $(#d1).css("color","blue");    //找到id为btn的标签,点击后让id为d1的标签拥有“颜色变成蓝色”的css样式
});

 

4)切换样式:toggleClass()

 


$("#btn").click(function(){    
  $(#d1).toggleClass("highlight");    //点击时不断切换,样式交替执行,一会儿有此样式一会儿没有
});

  

 

9、改变操作对象:

 

  1).end():为当前对象的前一步对象进行操作

  2).andself():为当前对象和它的前一步对象都进行操作

 

  【例】说明以下三句话的含义:

  1)$(“p”).find(“span”).addClass(“myClass1”).addClass(“myClass2”)

  2)$(“p”).find(“span”).addClass(“myClass1”).end().addClass(“myClass2”)

  3)$(“p”).find(“span”).addClass(“myClass1”).andself().addClass(“myClass2”)

 

  答:1)在所有p标签中,找到span标签为它们加上myClass1样式,再加上myClass2样式

    2)在所有p标签中,找到span标签为它们加上myClass1样式,然后返回至上一个对象$(“p”),为所有p标签加上myClass2样式

    3)在所有p标签中,找到span标签为它们加上myClass1样式,并且为它们自己以及上一个对象$(“p”)加上myClass2样式

 

10、动态切换:

 

  1)mouseover():鼠标移动上去时改变样式

$(“p”).mouseover(function(){     

  $(this).css(“color”,”red”);

});

 

  2)mousetout():鼠标移走后改变样式

$(“p”).mouseout(function(){     

  $(this).css(“color”,”red”);

});

 

  3)hover(事件1,事件2):鼠标放上去事件1,移开事件2

$(“p”).hover(function(){     

  $("#d1").addClass(“c”);

  },function(){     

      $("#d1").removeClass(“c”);

});

     对p标签中id=d1的标签,鼠标放上时加c样式,移开时移除c样式。

 

11、判断样式:hasClass()

  $(“li”).hasClass(“myClass”);  判断li中是否含有myClass的样式,返回为布尔型,是或否

  

 

 

Jq第三课

 

 

1、获取内容:

 

  text():获取文本内容。text获取的是文本内容,假设被指定的<div>里面还有各种标签,text也只获取里面的纯文本内容。

  html():获取括号内内容。而html则是获取里面的全部内容,包括标签也会一起打印出来。

 

  【例】

$(“#d1”).text(“aaaaa”);          //打印出 aaaaa

$(“#d1”).html(“<div>aaaa</div>”);    //打印出<div>aaaa</div>

 

2、添加元素:

 

$(A).append(B):给A标签里面,加入一个B。

$(A).appendTo(B):把A,加入到B标签里面。

$(A).after(B):在A标签的后面,加上一个B。

 

  【例】

$(“p:eq(1)”).append($(“a:eq(1)”));    //给页面中第二个p标签里面,加入页面中第二个a标签

$(“img:eq(1)”).appendTo(“p:eq(1)”);     //把页面中第二个img标签,加入到页面中第二个p标签里

$(“img:eq(1)”).after(“<p></p>”);      //在页面中第二个img标签后面,加入一个p标签

 

3、删除元素:

 

$(A).remove():把A标签整个的移除掉(练标签一起移除掉)。

$(A).empty():把A里面的内容全部清空(标签会保留)。

 

【例】

$("p:eq(1)").remove();    //给页面中第二个p标签连标签一起移除掉。

$(“p:eq(1)”).empty();      //把第二个p标签里面的内容清掉,保留标签。

 

4、获取/设置元素:

 

  val():获取到任何标签的value属性值。

  val(B):设置值为B,此时获取得到的val值就是B的内容。

 

  【例】

$("txt").val();        //获取到txt标签里面的value属性值。

$(“txt”).val("aaaa");      //设置txt标签的value属性值为aaaa。

 

5、绑定事件:

 

  bind():对于一个对象,可以用bind绑定多个事件。并且可以反复执行。

  unbind():解除绑定。

  one():对于一个对象,可以用one对它绑定一个事件,并且只执行一次。

 

  【例】

  $("img")

      .bind("click",function(){事件1})

      .bind("click",function(){事件2})

      .bind("click",function(){事件3})    //当我们点击img时,同时触发事件1、2、3;再点击img,再次触发事件123。

 

$(“p”).unbind(“click”);            //让p标签无法点击。

 

  $("div").one("click",function(){事件1});    //当我们点击div时,触发事件1;再点击div时,就不会触发事件了。

 

6、显示和隐藏:

 

  //左上到右下  

  show():显示元素,从左上到右下展开。(当括号内加入时间后,代表用多长时间展开。)

  hide():隐藏元素,从右下往左上收缩隐藏。(当括号内加入时间后,代表用多长时间收缩。)

  toggle():在显示show和隐藏hide之间交替执行,瞬间显示或者隐藏。可加入时间。

 

  //上下

  slideDown():显示元素,从上往下逐渐展开。

  slideUp():隐藏元素,从下往上收缩隐藏。

  slideToggle():在显示slideDown和隐藏slideUp之间交替执行,方式为上下伸缩。可加入时间。

 

  //透明

  fadeIn():渐变的显示出来。由透明到出现。

  fadeOut():渐变的隐藏掉。逐渐变透明最后消失。

 

 

 

  【例】

  $("#btn").click(function(){

    $("#d1").hide(2000);      

  })                  //当点击btn时,用1秒的时间从右下到左上隐藏d1

 

  $("#btn").click(function(){

    $("#d1").show(2000);      

  })                  //当点击btn时,用1秒的时间从左上到右下展开d1

 

  $("#btn").click(function(){

    $("#d1").toggle(2000);      

  })                  //当点击btn时,以2秒的速度左上到右下展开或隐藏d1(点击隐藏、再点击展开、……,交替执行)

 

 

7、回调函数:在现在的动作执行完后,立刻执行我们在里面定义的事件。

 

  【例】

  $("#btn").click(function(){

    $("#d1").hide(1000,function(){alert("aaa");});      

  })                  //当点击btn时,用1秒的时间右下到左上隐藏d1,然后打印出aaa

 

8、动画时间animate:

 

  animate:在多长时间内,从一个状态变到另一个状态。

 

  【例】

  $("#d1").css("position", "absolute").animate({ "top": "250px", "left": "300px" }, 2000,

          function () {$("#d1").animate({ "top": "0px", "left": "600px" }, 2000);

        });

 

  //用2秒时间,从原来的位置,移动到绝对定位下的top:250px,left:300px的位置;然后用2秒时间,移动到top:0px,left:600px的位置。

 

 

 

jq第四课

 

1、磁力图片:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title></title>

    <style type="text/css">

        * {

            font-family:微软雅黑;

        }

        img {

            position:absolute;

        }

    </style>

  <script src="Scripts/jquery-1.8.2.min.js"></script>

    <script type="text/javascript">

        $(function () {

            $(document).click(function (a) {

                $("img").animate({ left: a.pageX, top: a.pageY }, 2000);

            });

        });

    </script>

</head>

<body>

    <img src="Images/cat.jpg" />

</body>

</html>

 

2、轮播图:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

    <title></title>

     <link href="Style/demo2.css" rel="stylesheet" />

    <script src="Scripts/jquery-1.8.2.min.js"></script>

    <script type="text/javascript">

        var num = 0;//记录下当前显示的图片的索引

        $(function () {

            $(".imgitem").not(":eq(0)").hide();//页面加载的时候,第一张图片显示。

           

            setInterval(function () {//隔多久,执行一次方法

                num++;

                if (num == 5)

                {

                    num = 0;

                }

                ShowFocusPic();

            }, 5000);

 

            $(".btn a").click(function () {

                num = $(".btn a").index($(this));//当前点击的下标在整个下标里面的索引,把这个索引值转成整数赋值给num

                ShowFocusPic();

            });

        });

        function ShowFocusPic()

        {

            $(".imgitem").eq(num).show();

            $(".imgitem").not(":eq(" + num + ")").hide();

            $(".btn li a").eq(num).addClass("selected");

            $(".btn li a").not(":eq(" + num + ")").removeClass("selected");

        }

    </script>

</head>

<body>

    <div id="list">

        <div class="imgitem"><img src="Images/2.png" /></div>

        <div class="imgitem"><img src="Images/3.jpg" /></div>

        <div class="imgitem"><img src="Images/4.jpg" /></div>

        <div class="imgitem"><img src="Images/5.jpg" /></div>

        <div class="imgitem"><img src="Images/6.jpg" /></div>

        <div class="btn">

            <ul>

                <li><a href="#" class="selected">1</a></li>

                 <li><a href="#">2</a></li>

                 <li><a href="#">3</a></li>

                 <li><a href="#">4</a></li>

                 <li><a href="#">5</a></li>

            </ul>

        </div>

    </div>

</body>

</html>

 

3、腾讯课堂菜单:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title></title>

    <link href="Style/demo1.css" rel="stylesheet" />

    <script src="Scripts/jquery-1.8.2.min.js"></script>

    <script type="text/javascript">

        $(function () {

            $(".showinfor").hide();//页面加载后,class为showinfor的div隐藏

 

            $(".showinfor").hover(function () {

                $(this).show();

            }, function () {

                $(this).hide();

            });

 

            $(".listitem").hover(function () {

                var obj = $(this).offset();

                var index =$(".listitem").index($(this));

                $(".showinfor").eq(index).show();

                $(".showinfor").eq(index).css({ "top": obj.top, "left": obj.left + 220 });

                $(this).addClass("itembg");

            }, function () {

                var index =$(".listitem").index($(this));

                $(".showinfor").eq(index).hide();

                $(this).removeClass("itembg");

            });

        });

    </script>

</head>

<body>

    <div id="list">

        <p class="top"><a href="#">全部课程</a></p>

        <div class="listitem">

            <div class="item_1"><a href="#">职业技能</a></div>

            <div class="item_2">

                <ul>

                    <li><a href="#">职能技能</a></li>

                    <li><a href="#">SNS营销</a></li>

                    <li><a href="#">公务员</a></li>

                </ul>

            </div>

        </div>

        <div class="showinfor">

         职业技能

        </div>

        <div class="listitem">

            <div class="item_1"><a href="#">IT培训</a></div>

            <div class="item_2">

                <ul>

                    <li><a href="#">网站制作</a></li>

                    <li><a href="#">手机开发</a></li>

                    <li><a href="#">游戏制作</a></li>

                </ul>

            </div>

        </div>

        <div class="showinfor">IT培训</div>

        <div class="listitem">

            <div class="item_1"><a href="#">语言学习</a></div>

            <div class="item_2">

                <ul>

                    <li><a href="#">英语口语</a></li>

                    <li><a href="#">留学英语</a></li>

                    <li><a href="#">韩语</a></li>

                </ul>

            </div>

        </div>

        <div class="showinfor">语言学习</div>

        <div class="listitem">

            <div class="item_1"><a href="#">中小学/大学</a></div>

            <div class="item_2">

                <ul>

                    <li><a href="#">中考备战</a></li>

                    <li><a href="#">高考备战</a></li>

                </ul>

            </div>

        </div>

        <div class="showinfor">中小学/大学</div>

        <div class="listitem">

            <div class="item_1"><a href="#">兴趣爱好</a></div>

            <div class="item_2">

                <ul>

                    <li><a href="#">投资理财</a></li>

                    <li><a href="#">美妆</a></li>

                    <li><a href="#">摄影</a></li>

                </ul>

            </div>

 

        </div>

        <div class="showinfor">兴趣爱好</div>

        <div class="listitem">

            <div class="item_1"><a href="#">亲子课堂</a></div>

            <div class="item_2">

                <ul>

                    <li><a href="#">幼儿教育</a></li>

                    <li><a href="#">家长训练营</a></li>

                </ul>

            </div>

        </div>

        <div class="showinfor">亲子课堂</div>

   

    </div>

</body>

</html>

 

4、可弹出红色菜单:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>

<head>

    <title></title>

    <style type="text/css">

        body {

            background-color: #ffdee0;

        }

 

        a {

            font-family: "微软雅黑";

            color: white;

            text-decoration: none;

        }

 

        ul {

            list-style-type: none; /* 不显示项目符号 */

            margin: 0px;

            padding: 0px;

        }

 

        #navigation {

            width: 200px;

        }

 

            #navigation ul li {

                border-bottom: 1px solid #ED9F9F; /* 添加下划线 */

                background-color: #c11136;

            }

 

                #navigation ul li a {

                    display: block; /* 区块显示 */

                    padding: 5px;

                    border-left: 12px solid #711515; /* 左边的粗红边 */

                    border-right: 1px solid #711515; /* 右侧阴影 */

                }

 

                    #navigation ul li a:hover { /* 鼠标经过时 */

                        background-color: #990020; /* 改变背景色 */

                        color: #ffff00; /* 改变文字颜色 */

                    }

 

 

                #navigation ul li ul li {

                    background-color: #e85070;

                    border-top: 1px solid #ED9F9F;

                }

 

                    #navigation ul li ul li a {

                        display: block;

                        padding: 3px;

                        border-left: 28px solid #a71f1f;

                        border-right: 1px solid #711515;

                    }

 

                        #navigation ul li ul li a:hover {

                            background-color: #c2425d;

                            color: #ffff00;

                        }

    </style>

    <script src="Scripts/jquery-1.8.2.min.js" type="text/javascript"></script>

    <script type="text/javascript">

 

        //$(function () {

        //    $(".c").find("ul").hide();

        //    $(".c").toggle(function () {

        //        $(this).find("ul").slideDown(500);

        //    }, function () {

        //        $(this).find("ul").slideUp(500);

        //    });

        //});

 

        $(function () {

            $(".c").find("ul").hide();

            $(".c").toggle(function () {

                $(this).find("ul").slideDown(500);

            }, function () {

                $(this).find("ul").slideUp(500);

            });

        });

 

    </script>

</head>

<body>

    <div id="navigation">

        <ul id="listUL" >

            <li class="c"><a href="#">体育明星</a>

                <ul>

                    <li><a href="#">乔丹</a></li>

                    <li><a href="#">纳什</a></li>

                    <li><a href="#">奥利尔</a></li>

                </ul>

            </li>

 

            <li class="c"><a href="#">政治明星</a>

                <ul>

                    <li><a href="#">普京</a></li>

                    <li><a href="#">习总</a></li>

                    <li><a href="#">奥巴马</a></li>

                </ul>

            </li>

            <li class="c"><a href="#">娱乐明星</a>

                <ul>

                    <li><a href="#">黄家驹</a></li>

                    <li><a href="#">周润发</a></li>

                    <li><a href="#">刘德华</a></li>

                </ul>

            </li>

            <li class="c"><a href="#">历史人物</a>

                <ul>

                    <li><a href="#">康熙</a></li>

                    <li><a href="#">拿破仑</a></li>

                    <li><a href="#">秦始皇</a></li>

                </ul>

            </li>

        </ul>

    </div>

</body>

</html>

 

5、砸蛋游戏:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title></title>

    <style type="text/css">

        #d1 {

            margin-top: 200px;

            margin-left: 200px;

        }

 

        .egg {

            float: left;

            background-image: url("Images/egg_1.png");

            background-repeat: no-repeat;

            height: 187px;

            width: 158px;

            margin-right: 50px;

            cursor: pointer;

        }

 

        #t {

            height: 87px;

            width: 74px;

            background-image: url("Images/egg_3.png");

            background-repeat: no-repeat;

            position: absolute;

            top: 185px;

            left: 330px;

            cursor: pointer;

        }

 

        #re {

            width: 160px;

            height: 35px;

            position:absolute;

            background-color:#FFFFCC;

            color:#FF6600;

            font-size:14px;

            font-family:"微软雅黑";

            display:none;

            text-align:center;

            line-height:35px;

        }

    </style>

    <script src="Scripts/jquery-1.8.2.min.js"></script>

    <script type="text/javascript">

        $(function () {

            var iNum = Math.floor(Math.random() * 4 + 1);//产生一个1~4之间的随机整数

        

            var i = 0;

 

            $(".egg").mouseover(function () {

                var off = $(this).offset();//当前蛋的方位

                $("#t").css("left", off.left + 120);

            });

 

            $(".egg").click(function () {

                if (i == 4) {

                    alert("蛋都碎了,别砸了,刷新再来");

                    document.getElementById("a3").play();

                    return;

                }

                if ($(this).attr("isbreak") == "false") {

                    i++;

                    $(this).css("background-image", "url(Images/egg_2.png)");

                    var a = $(".egg").index($(this)) + 1;//获取到当前的蛋是第几个蛋

                    var off = $(this).offset();

                    if (a == iNum) {

                        $("#re").text("恭喜,您中得数码相机!").css({ "left": off.left, "top": "140px" }).slideDown();

                        document.getElementById("a2").play();

                    }

                    else {

                        $("#re").text("很遗憾,您没有中奖").css({ "left": off.left, "top": "140px" }).slideDown();

                        document.getElementById("a1").play();

                    }

                    $(this).attr("isbreak", "true");

                }

                else {

                    $("#re").text("蛋已砸过了").css({ "left": off.left, "top": "140px" }).slideDown();

                }

 

            });

        });

    </script>

</head>

<body>

    <div id="d1">

        <div class="egg" isbreak="false"></div>

        <div class="egg" isbreak="false"></div>

        <div class="egg" isbreak="false"></div>

        <div class="egg" isbreak="false"></div>

    </div>

    <div id="t"></div>

    <div id="re"></div>

 

    <div><audio src="file/1.mp3" id="a1"></audio></div>

    <div><audio src="file/2.mp3" id="a2"></audio></div>

    <div><audio src="file/3.mp3" id="a3"></audio></div>

</body>

</html>

 

 

js jq 笔记小结

标签:

原文地址:http://www.cnblogs.com/mmtk/p/4695321.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!