jQuery的学习

Posted 胡说八道你也信

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery的学习相关的知识,希望对你有一定的参考价值。

[1]为什么学习jQuery(javascript的缺点)

 A、JS书写的代码比较的臃肿

 B、JS中获得元素对象的方式比较单一

 C、JS实现动画效果非常复杂

 D、JS的代码对浏览器是有区分的 

[2]什么是JQuery 

JavaScriptQuery  JS的库

目前最流行的JavaScript函数库,对JavaScript进行了封装。 

并不是一门新语言。将常用的、复杂的操作进行函数化封装,直接调用,大大降低了使用JavaScript的难度,改变了使用JavaScript的习惯。

jQuery能做的JavaScript也都能做,但使用jQuery能大幅提高开发效率

由美国人John Resig在2006年推出,目前最新版本是v3.31。

宗旨:Write less,domore(写更少代码,做更多事情)

官方网址http://jquery.com/ 

目前jQuery有三个大版本:

1.x:兼容ie678,使用最为广泛的,官方只做BUG维护,功能不再新增。因此一般项目来说,使用1.x版本就可以了,最终版本:1.12.4(2016年5月20日)

2.x:不兼容ie678,很少有人使用,官方只做BUG维护,功能不再新增。如果不考虑兼容低版本的浏览器可以使用2.x,最终版本:2.2.4(2016年5月20日)

3.x:不兼容ie678,只支持最新的浏览器。除非特殊要求,一般不会使用3.x版本的,很多老的jQuery插件不支持这个版本。目前该版本是官方主要更新维护的版本。最新版本:3.3.1(2017年3月20日)

 

 



$的作用


作用1:$(function)$就是jQuery的省略写法

1.相当于window.onload=function(){}

2.功能比window.onload更强大

1) window onload一个页面只能写一个,但是可以写多个$()而不冲突

2) window onload要等整个页面加载完后再执行(包括图片、超链接、音视频等),

但是$的执行时间要早

3.完整形式是$(document).ready(…….);

作用2:$(selector)




选择器


jQuery具有强大的选择器功能 

其他作用后续用到再总结

<!DOCTYPEhtml>

<html>

<head>

<metacharset="utf-8">

<title>隔行变色-CSS</title>

<styletype="text/css">

.datalist{

border:1px solid #007108;

font-family:Arial;

border-collapse:collapse;

background-color:#d9ffdc;

font-size:14px;

}

 

.data list th{

border:1px solid #007108;

background-color:#00a40c;

color:#FFFFFF;

font-weight:bold;

padding-top:4px;padding-bottom:4px;

padding-left:12px;padding-right:12px;

text-align:center;

} 

.data list td{

border:1px solid #007108;

text-align:left;

padding-top:4px;

padding-bottom:4px;

padding-left:10px;

padding-right:10px;

}

</style>

 

<scriptsrc="js/jquery-1.9.1.js"type="text/javascript"charset="utf-8"></script>

 

<scripttype="text/javascript">

  /*JS实现的方式*/

 /*window.onload=function(){

 //获得所有的tr标签对象 

 vartrs=document.getElementsByTagName("tr");

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

 if(i%2==0){ 

 trs[i].style.backgroundColor="red"; 

 } 

 } 

 }*/ 

/*JQ实现操作*/ 

$(function(){ 

$("tr:odd").css("background-color","green");

}) 

$(function(){ 

alert("123"); 

}) 

/*jQuery(function(){ 

alert("456"); 

}) 

$(document).ready(function(){ 

alert("789"); 

})*/ 

</script> 

</head>

<body>

<table class="datalist"summary="listof members in EE Studay" id="oTable">

<tr>

<thscope="col">Name</th>

<thscope="col">Class</th>

<thscope="col">Birthday</th>

<thscope="col">Constellation</th>

<thscope="col">Mobile</th>

</tr>

<tr><!--奇数行-->

<td>isaac</td>

<td>W13</td>

<td>Jun24th</td>

<td>Cancer</td>

<td>1118159</td>

</tr>

<tr class="altrow"><!--偶数行-->

<td>fresheggs</td>

<td>W610</td>

<td>Nov5th</td>

<td>Scorpio</td>

<td>1038818</td>

</tr>

<tr><!--奇数行-->

<td>girlwing</td>

<td>W210</td>

<td>Sep16th</td>

<td>Virgo</td>

<td>1307994</td>

</tr>

<tr class="altrow"><!--偶数行-->

<td>tastestory</td>

<td>W15</td>

<td>Nov29th</td>

<td>Sagittarius</td>

<td>1095245</td>

</tr>

<tr><!--奇数行-->

<td>lovehate</td>

<td>W47</td>

<td>Sep5th</td>

<td>Virgo</td>

<td>6098017</td>

</tr>

<tr class="altrow"><!--偶数行-->

<td>slepox</td>

<td>W19</td>

<td>Nov18th</td>

<td>Scorpio</td>

<td>0658635</td>

</tr>

<tr><!--奇数行-->

<td>smartlau</td>

<td>W19</td>

<td>Dec30th</td>

<td>Capricorn</td>

<td>0006621</td>

</tr>

<tr class="altrow"><!--偶数行-->

<td>shenhuanyan</td>

<td>W25</td>

<td>Jan31th</td>

<td>Aquarius</td>

<td>0621827</td>

</tr>

<tr><!--奇数行-->

<td>tuonene</td>

<td>W210</td>

<td>Nov26th</td>

<td>Sagittarius</td>

<td>0091704</td>

</tr>

<tr class="altrow"><!--偶数行-->

<td>ArthurRivers</td>

<td>W91</td>

<td>Feb26th</td>

<td>Pisces</td>

<td>0468357</td>

</tr>

<tr><!--奇数行-->

<td>reconzansp</td>

<td>W09</td>

<td>Oct13th</td>

<td>Libra</td>

<td>3643041</td>

</tr>

<tr class="altrow"><!--偶数行-->

<td>linear</td>

<td>W86</td>

<td>Aug18th</td>

<td>Leo</td>

<td>6398341</td>

</tr>

<tr><!--奇数行-->

<td>laopiao</td>

<td>W41</td>

<td>May17th</td>

<td>Taurus</td>

<td>1254004</td>

</tr>

<tr class="altrow"><!--偶数行-->

<td>dovecho</td>

<td>W19</td>

<td>Dec9th</td>

<td>Sagittarius</td>

<td>1892013</td>

</tr>

<tr><!--奇数行-->

<td>shanghen</td>

<td>W42</td>

<td>May24th</td>

<td>Gemini</td>

<td>1544254</td>

</tr>

<tr class="altrow"><!--偶数行-->

<td>venessawj</td>

<td>W45</td>

<td>Apr1st</td>

<td>Aries</td>

<td>1523753</td>

</tr>

<tr><!--奇数行-->

<td>lightyear</td>

<td>W311</td>

<td>Mar23th</td>

<td>Aries</td>

<td>1002908</td>

</tr>

</table>

</body>

</html>



 

基本选择器


标签选择器 $(“a”) 

ID选择器 $(“#id”)$(“p#id”)

类选择器 $(“.class”)$(“h2.class”)

通配选择器$("*")

并集选择器$("elem1,elem2,elem3") 


<script type="text/javascript"> 

$(function(){ 

/**********基本选择器***********/

//js的方式获得zh--Element

varzh =document.getElementById("zh");

// JS对象---JQ对象

varzz=$(zh);

// Object--[Element1,Element2,Element3...] 

//id选择器

varzh1=$("#zh"); 

//元素选择器--jq没有指定具体的下标默认的是第一个

varinp =$("input");

//JQ对象----JS对象

alert(inp[1].value);

alert(inp.eq(1).val()); 

//类选择器

varinp2=$(".re"); 

//所有选择器

$("*").css("background-color","green");

</script>  

<p>

账号:<inputtype="text"name="zh"id="zh"class="re"  value="123"/>

</p> 

<p>

密码:<input type="password"name="pwd"id="pwd" class="re" value="456" />

</p>


层级选择器 


后代选择器$(ul li)

父子选择器$(ul>li) 

后面第一个兄弟元素(紧跟) prev+ next

后面所有的兄弟元素 prev ~ next 


<script type="text/javascript">

$(function(){

/*********层级选择器***********/

//包含div下所有包含的span

var span= $("div span"); 

//必须是直系子节点

var span2=$("div > span");

//获得下一个节点对象-- id为span1后面紧跟着的span的对象

var span=$("#span1 + span");

// 获得元素后面的span(同一级别的span)

var span4=$("#span1~span");

alert(span4.length);

})

</script> 

<div id="div1"> 

<span>List Item 1</span><br /> 

<spanid="span1">List  Item 2</span><br/> 

<span> List Item3</span><br/> 

<span>List Item 4</span><br /> 

<p>

<span>List Item 1</span><br /> 

<span>List Item 2</span><br /> 

<span>List Item 3</span><br /> 

<span>List Item 4</span><br /> 

</p>

</div>


位置选择器


·:first

·:last

·:odd

·:even

·:eq(index)

·:lt(index)

·:gt(index)   

<script type="text/javascript"> 

$(function(){ 

/***********基础选择器****************/

//获得第一个元素

$("ulli").first().css("background-color","red");

$("ulli:first").css("background-color","red");

//获得最后一个元素对象

$("ulli").last().css("background-color","green");

$("ulli:last").css("background-color","green");

//奇数索引  从0开始

$("ulli:odd").css("background-color","green");

//偶数索引  从0开始

$("ulli:even").css("background-color","green"); 

//获得具体下标位置

$("ulli:eq(3)").css("background-color","green"); 

//获得索引小于指定的下标

$("ulli:lt(3)").css("background-color","green"); 

//获得索引大于指定的下标

$("ulli:gt(3)").css("background-color","green"); 

 })  

</script>  

<divstyle="height:300px;border:2px solid green;"> 

<ul>

<li>List  item  1</li> 

<li>List  item  2</li> 

<li>List  item  3</li> 

<li>List  item  4</li> 

<li>List  item  5</li> 

<li>List  item  6</li>

</ul>  

<ul>

<li>List  item  1</li> 

</ul> 

</div>   


·子元素选择器


·:nth-child(index)  这个是从1开始的

·:only-child

·:first-child

·:last-child 

<script type="text/javascript"> 

$(function(){ 

/**********子元素选择器*************/

//位置从1开始  ---每一个ul都会看成一个对象

$("ulli:nth-child(1)").css("background-color","green");

//  如果某个元素是父元素中唯一的子元素,那将会被匹配

$("ulli:only-child").css("background-color","green");

//匹配第一个子元素

$("ul li:first-child").css("background-color","green");

//匹配最后一个子元素

$("ul li:last-child").css("background-color","green");

})

</script> 

<divstyle="height:300px;border:2pxsolid  green;"> 

<ul>

<li>List  item  1</li> 

<li>List  item  2</li> 

<li>List  item  3</li> 

<li>List  item  4</li> 

<li>List  item  5</li> 

<li>List  item  6</li>

</ul>  

<ul>

<li>List  item  1</li> 

</ul> 

</div>


属性选择器


·[attribute]

·[attribute1][attribute2]

·[attribute=value]

·[attribute!=value]

·[attribute^=value]

·[attribute$=value

[attribute*=value]

<script type="text/javascript"> 

$(function(){ 

/****属性选择器*********/

$("input[type=text]").css("background-color","red");

//name包含s元素对象

$("input[name^=s]").css("background-color","red");

//只要包含s的元素对象即可

$("input[name*=s]").css("background-color","red");

//以指定元素结尾的对象

$("input[name$=d]").css("background-color","red");

//匹配所有不含有指定的属性,或者属性不等于特定值的元素

$("input[name!='pwd']").css("background-color","red");

}) 

</script> 

<body> 

<h3>注册用户</h3>

<formaction="doRegister.jsp"method="get">

<tableborder="1"width="40%">

<tr>

<td>用户名</td>

<td><input  type="text"name="username"id="username"value="请输入姓名" disabled="disabled"/></td>

</tr>

<tr>

<td>密&nbsp;码</td>

<td><input  type="password"name="pwd"id="pwd"/></td>

</tr>

<tr>

<td>确认密码</td>

<td><inputtype="color"name="spwd"id="repwd"/></td>

</tr>

<tr>

<td>性别</td>

<td>

<input  type="radio"name="sex"value="男"/>男

<input  type="radio"name="sex"checked="checked"value="女"/>女

</td>

</tr>

<tr>

<td>年龄</td>

<td><inputtype="number"  name="sage"id="age"value="18"/></td>

</tr>

<tr>

<td>电子邮箱</td>

<td><inputtype="email"name="semail"id="email"/></td>

</tr>

<tr>

<td>爱好</td>

<td>

<input  type="checkbox"name="hobby"value="music"checked/>音乐

<input  type="checkbox"name="hobby"value="sports"/>体育

<input  type="checkbox"name="hobby"value="art"/>美术

</td>

</tr>

<tr>

<td>身份</td>

<td>

<selectname="professional">

<optionvalue="1">工人</option>

<optionvalue="2">农民</option>

<optionvalue="3"selected="selected">解放军</option>

<optionvalue="4">知识分子</option>

</select>

</td>

</tr>

<tr>

<td>简历</td>

<td>

<textareaname="resume"rows="5"cols="40">请输入简历</textarea>

</td>

</tr>

<tr>

<td>照片</td>

<td><inputtype="file"name="photo"id="photo"/></td>

</tr>

<tr>

<tdcolspan="2"  align="center">

<input  type="submit"value="提交" disabled="disabled"/>

<inputtype="reset"value="重置"/>

<inputtype="button"value="返回" onclick="alert('back')"/>

</td> 

</tr>

</table>

</form> 

</body>


表单选择器 


·:text:password  :radio :checkbox  :hidden  :file :submit

·:input 匹配所有input, textarea, select 和 button 元素

·:selected  :checked :enabled  :disabled

·:hidden:visible  :not

注意$(“input”)和$(“:input”)的区别 


<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title></title>

<scripttype="text/javascript"src="js/jquery-1.9.1.js"></script> 

<scripttype="text/javascript"> 

$(function(){

/************表单选择器***********/ 

//获得所有的form表单项

$(":input").length; 

//获得标签名称是input 的对象

$("input").length;

//  input中type=text所对应的对象

$(":text").css("background-color","red"); 

$(":password").css("background-color","red"); 

/*********表单属性选择器**************/

//选择input中含有disabled属性表单项

$("input:disabled").css("background-color","red");

//选择性别只是性别被选择的对象

$("input[name=sex]:checked").eq(0).val(); 

/*******内容选择器********/

$("td:empty").css("background-color","green"); 

}) 

</script>  

</head>

<body> 

<h3>注册用户</h3>

<formaction="doRegister.jsp"method="get">

<tableborder="1"width="40%"> 

<tr>

<td></td>

<td></td>

</tr> 

<tr>

<td>用户名</td>

<td><input  type="text"name="username"id="username"value="请输入姓名" disabled="disabled"/></td>

</tr>

<tr>

<td>密&nbsp;码</td>

<td><input  type="password"name="pwd"id="pwd"/></td>

</tr>

<tr>

<td>确认密码</td>

<td><inputtype="color"name="spwd"id="repwd"/></td>

</tr>

<tr>

<td>性别</td>

<td>

<input  type="radio"name="sex"value="男"/>男

<input  type="radio"name="sex"checked="checked"value="女"/>女

</td>

</tr>

<tr>

<td>年龄</td>

<td><inputtype="number"  name="sage"id="age"value="18"/></td>

</tr>

<tr>

<td>电子邮箱</td>

<td><inputtype="email"name="semail"id="email"/></td>

</tr>

<tr>

<td>爱好</td>

<td>

<input  type="checkbox"name="hobby"value="music"checked/>音乐

<input  type="checkbox"name="hobby"value="sports"/>体育

<input  type="checkbox"name="hobby"value="art"/>美术

</td>

</tr>

<tr>

<td>身份</td>

<td>

<selectname="professional">

<optionvalue="1">工人</option>

<optionvalue="2">农民</option>

<optionvalue="3"selected="selected">解放军</option>

<optionvalue="4">知识分子</option>

</select>

</td>

</tr>

<tr>

<td>简历</td>

<td>

<textareaname="resume"rows="5"cols="40">请输入简历</textarea>

</td>

</tr>

<tr>

<td>照片</td>

<td><inputtype="file"name="photo"id="photo"/></td>

</tr>

<tr>

<tdcolspan="2"  align="center">

<input  type="submit"value="提交" disabled="disabled"/>

<inputtype="reset"value="重置"/>

<inputtype="button"value="返回" onclick="alert('back')"/>

</td> 

</tr>

</table>

</form> 

</body>

</html> 

 



操作元素的属性


<!DOCTYPEhtml>

<html>

<head>

<metacharset="utf-8">

<title></title>

 <script src="js/jquery-1.9.1.js"type="text/javascript"charset="utf-8"></script> 

<scripttype="text/javascript"> 

$(function(){

/***********JQ中元素属性操作*****************/

//JQ中事件的绑定

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

//获得姓名的input框 

var inp=$("#username"); 

//获得元素的属性

console.log(inp.attr("type")+"----"+inp.attr("id")+"---"+inp.attr("value"));

//操作元素的属性

inp.attr("type","button");

inp.attr("value","提交");

//  inp.attr("value")是 对象默认的初始值inp.val()实时输入的值

alert(inp.val());

//返回值是checked

$("#man").attr("checked",false);

//返回值是true/false

alert($("#man").prop("checked"));

//综合的书写方式{key1:value,key2:value}--json

inp.attr({"type":"button","value":"提交"});

})

})

</script>  

</head>

<body> 

<h3>JQ中元素属性操作</h3>

<inputtype="button"name=""id="bu1"value="属性操作"/> 

<p>

姓名:<inputtype="text"name=""id="username"value="123"/>

</p> 

<p>

性别: 

男: <inputtype="radio"name=""id="man"value="1"checked="checked"/> 

女: <inputtype="radio"name=""id=""value="0"/> 

</p>

</body>

</html> 




操作元素的样式


<!DOCTYPEhtml>

<html>

<head>

<metacharset="utf-8">

<title></title>

<script src="js/jquery-1.9.1.js"type="text/javascript"charset="utf-8"></script> 

<scripttype="text/javascript"> 

$(function(){

/***********JQ中元素CSS样式操作*****************/

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

//获得div对象

var div1=$("#div1"); 

//获得对应的css样式

console.log(div1.css("width")+"---"+div1.css("height")+"---"+div1.css("border"))

//[1]直接添加css样式

div1.css("width","300px");

div1.css("height","300px"); 

div1.css("background-color","pink"); 

//结合的方式 

div1.css({"width":"300px","height":"300px"}); 

//[2]通过添加类的方式添加css样式

div1.attr("class","div_1");

//直接添加类--如果添加的样式比较多,那么推荐使用第二种形式

div1.addClass("div_1");

//移除类

div1.removeClass("div_1"); 

})

})

</script> 

<style> 

#div1{ 

width:200px; 

height:200px; 

border:3pxsolid  gray; 

} 

.div_1{ 

background-color:darkgoldenrod; 

} 

</style> 

</head>

<body>  

<h3>JQ中元素样式的操作</h3> 

<inputtype="button"name="bu2"id="bu2"value="样式操作" /> 

<divid="div1"></div>

</body>

</html> 




操作元素的内容


<!DOCTYPEhtml>

<html>

<head>

<metacharset="utf-8">

<title></title>

 <script src="js/jquery-1.9.1.js"type="text/javascript"charset="utf-8"></script> 

<scripttype="text/javascript"> 

$(function(){ 

/**********JQ中元素内容操作***********/ 

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

//获得div对象

var  div2=$("#div2");

//等价于  js中innerHTML

console.log(div2.html());

//等价于 JS中  innerTest

console.log(div2.text());

//操作节点的内容

div2.html(div2.html()+"<b>是一家很优秀的机构</b>");

div2.text("<b>是一家很优秀的机构</b>");

})  

})

</script>

</head>

<body>

<h3>JQ中元素内容的操作</h3> 

<inputtype="button"name="bu3"id="bu3"value="内容操作" /> 

<divid="div2">

<span>北京尚学堂</span>

</div> 

</body>

</html> 




操作元素的节点


<!DOCTYPEhtml>

<html>

<head>

<metacharset="utf-8">

<title></title>

<scriptsrc="js/jquery-1.9.1.js"type="text/javascript"charset="utf-8"></script> 

<scripttype="text/javascript"> 

$(function(){

//获得div对象

var div =$("#div1");

// 增加节点 --内部后

div.html(div.html()+"<p>ListItem6 </p>"); 

*div.append("<p>ListItem6 </p>");

//增加节点--内部前

*div.prepend("<p>ListItem 0 </p>");

//把一个元素追加到另一个元素中  --现有元素之后

$("#div2").appendTo(div);

//把一个元素追加到另一个元素中  --现有元素之前

$("#div2").prependTo(div);

//增加节点--外部前

div.before("<p>ListItem0</p>");

//增加节点--外部后

div.after("<p>ListItem6</p>");

//内容清空

div.empty();

//元素的移除

div.remove();

}) 

</script> 

<style>

#div1{

height:300px;

border:3pxsolidgoldenrod;

}

#div2{

height:50px;

border: 3px  solidred;

} 

</style>

</head>

<body> 

<divid="div2">

<p>LIST  ITEM 000</p>

</div> 

<divid="div1"> 

<p>List  Item1 </p> 

<p>List  Item2 </p> 

<p>List  Item3 </p> 

<p>List  Item4 </p> 

<p>List  Item5 </p>

</div>

</body>

</html> 




jQuery中的事件


·绑定事件

·方法1:click()、mousemove()、mouseout()、mouseover()

·方法2:bind()  对后来加入的无效

live() 对后来加入的也有效  在jQuery1.7及之前的版本中使用,1.9版本中淘汰了

one() 一次事件绑定

trigger() 在每一个匹配的元素上触发某类事件 

·解除绑定

·unbind()

不传参表示解除所有事件,

传参表示解除指定的事件 


<!DOCTYPEhtml>

<html>

<head>

<metacharset="utf-8">

<title></title>

<scriptsrc="http://apps.bdimg.com/libs/jquery/1.7.0/jquery.js"type="text/javascript"charset="utf-8"></script> 

<scripttype="text/javascript">

/*等价于js中的onload*/

$(document).ready(function(){}) 

$(function(){}) 

jQuery(function(){})   

$(function(){

/*事件的绑定*/

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

alert("单击事件的绑定"); 

}) 

$("#bu1").dblclick(function(){ 

alert("双击事件的绑定");

})

/******bind事件的绑定*********/

$("#bu2").bind('click',function(){

alert("单击事件的绑定");

})

/*绑定多个事件*/

$("#bu2").bind({

'click':function(){}, 

dblclick:function(){}, 

blur:function(){}  

}) 

/****one事件的绑定***********/

$("#bu3").one("click",function(){ 

alert("单击一次执行效果"); 

}) 

/*******trigger事件的使用**************/

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

$("#bu1").trigger("click"); 

$("#bu3").trigger("click"); 

}) 

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

//解绑所有绑定事件

$("#bu1").unbind();

//解绑单个的事件

$("#bu1").unbind("click"); 

})  

/***********live方法介绍********************/

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

alert("live事件的添加"); 

})

$(".bb").bind('click',function(){ 

alert("live事件的添加");

}) 

$(".bb").live('click',function(){ 

alert("live事件的添加");

}) 

$("body").append("<inputtype='button' value='live事件'class='bb' />") 

})

</script>

</head>

<body> 

<inputtype="button"name="bu1"id="bu1"class="bb"value="单击事件的绑定" /> 

<inputtype="button"name="bu2"id="bu2"value="bind事件的绑定" /> 

<inputtype="button"name="bu3"id="bu3"value="one事件的绑定" /> 

<inputtype="button"name="bu4"id="bu4"value="trigger事件的绑定" /> 

<input type="button" name="bu4" id="bu5"value="事件的解绑"/>

</body>

</html> 




jQuery中的动画


·显示隐藏show() hide() 改变width、height、opacity

·淡入淡出fadeIn()fadeOut()改变opacity

滑入滑出slideDown()slideUp() 改变height(对于img同时改变height和width)

隐藏的显示/显示的隐藏 toggle() 


<!DOCTYPEhtml>

<html>

<head>

<metacharset="utf-8">

<title></title>

<scriptsrc="js/jquery-1.9.1.js"type="text/javascript"charset="utf-8"></script> 

<scripttype="text/javascript"> 

$(function(){ 

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

//获得div对象

vardiv1=$("#div1");

/*隐藏的效果*/

div1.hide(3000); 

div1.show(3000); 

//显示的隐藏-- 隐藏的显示

$("div").toggle(3000); 

//滑动上

div1.slideUp(3000);

//滑动下

div1.slideDown(3000); 

//淡出

div1.fadeOut(3000);

//淡入

div1.fadeIn(3000);

})

})

</script> 

<style> 

#div1{ 

height:300px; 

background-color:red;

}

#div2{

height:300px;

background-color:gold;

}

</style>

</head>

<body> 

<inputtype="button"name="bu1"id="bu1"value="动画的测试" /> 

<divid="div1"> 

</div> 

<divid="div2"></div>

</body>

</html> 




jQuery中的表单验证


为什么要进行表单验证

保证数据符合要求 

为什么要进行JavaScript或者jQuery表单验证

降低服务器端负担 

还可以进行服务器验证(JSP) 

为什么使用正则表达式

·简洁的代码

·严谨的验证文本框中的内容 

·正则表达式举例

·匹配腾讯QQ号:[1-9][0-9]{4,}

·匹配中国邮政编码:\d{6}

·匹配身份证:\d{15}|\d{18}

·匹配由数字和26个英文字母组成的字符串^[A-Za-z0-9]+$ 

·匹配中文字符的正则表达式:[\u4e00-\u9fa5]

·什么是正则表达式

·Regular Expression,在代码中常简写为regex

·正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。

·在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。 

·如何创建正则表达式

·var reg=/china/;

·var reg=new RegExp(" china "); 

·var reg=/^\w+$/;

·var reg=newRegExp("^\w+@\w+.[a-zA-Z]{2,3}(.[a-zA-Z]{2,3})?$";

·正则表达式中常用的符号和用法 

https://www.jb51.net/article/76901.htm

·正则表达式的重复字符  


<!DOCTYPEhtml>

<html>

<head>

<metacharset="utf-8">

<title></title> 

<scriptsrc="js/jquery-1.9.1.js"type="text/javascript"charset="utf-8"></script> 

<script> 


/*****验证码产生****************/

function  yzm(){  

var  ran=Math.floor(Math.random()*9000+1000); 

//document.getElementById("yzm1").innerHTML=ran; 

var  span =document.getElementById("yzm2");

span.innerHTML=ran;

} 

$(function(){ 

/*********姓名的校验**************/

$("#uname").blur(function(){  

//姓名的正则表达式 2-4位的汉字

var reg=/^[\u4e00-\u9fa5]{2,4}$/;

checkData("uname",reg);

})  

/**********密码的校验****************/  

$("#pwd").blur(function(){ 

varreg=/^\d{4,6}$/; 

checkData("pwd",reg);

}) 

/**********邮箱的校验****************/  

$("#email").blur(function(){ 

//邮箱的正则表达式

var reg=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/; 

checkData("email",reg);

}) 

/**********手机的校验****************/  

$("#phone").blur(function(){ 

var reg=/^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/;

checkData("phone",reg);

})  

/**********提取公共的方法***************/

function  checkData(id,reg){ 

//获得用户名的值  

var  us=$("#"+id);

//获得span对象

var span =$("#span_"+id);  

if(us.val()==""||us.val()==null){  

span.html("× "+us.attr("alt")+"不能为空").css("color","red").addClass("error");  

}elseif(reg.test(us.val())){  

//符合要求的格式

span.html("√ "+us.attr("alt")+"合法").css("color","green").removeClass();

}else{

span.html("× "+us.attr("alt")+"不合法").css("color","red").addClass("error");  

}

} 

/********爱好的校验***************/

$("input[name=fav]").click(function(){  

var che=$("input[name=fav]:checked"); 

if(che.length>0){ 

$("#span_fav").html("爱好选择成功").css("color","green").removeClass(); 

}else { 

$("#span_fav").html("请选择爱好").css("color","red").addClass("error"); 

}  

}) 

/********籍贯的选择***************/ 

$("#sel").change(function(){ 

var val=$("#sel").val(); 

if(val=="0"){ 

$("#span_sel").html("请选择籍贯").css("color","red").addClass("error"); 

}else { 

$("#span_sel").html("籍贯选择成功").css("color","green").removeClass();

}  

}) 

/********验证码的校验**************/ 

$("#yzm1").blur(function(){ 

//[1]随机产生的验证码 

var  yz=$("#yzm2").html(); 

//[2]输入的值

var  yz2=$("#yzm1").val(); 

if(yz==yz2){ 

$("#yzm3").html("验证码输入正确").css("color","green").removeClass(); 

}else { 

$("#yzm3").html("验证码输入错误").css("color","red").addClass("error");

}  

})

/******同意协议*********/ 

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

var flag=$("#check").prop("checked"); 

/*if(flag){ 

$("#sub").prop("disabled",false);

}else { 

$("#sub").prop("disabled",true);

}*/ 

$("#sub").prop("disabled",!flag);

})

/******校验表单的提交***********/ 

$("form").submit(function(){ 

$("#uname").trigger("blur"); 

$("#pwd").trigger("blur"); 

$("#email").trigger("blur"); 

$("#phone").trigger("blur"); 

/*执行两次*/

$("input[name=fav]").trigger("click");

$("input[name=fav]").trigger("click");    

varerr=$(".error");  

if(err.length>0){  

return  false;

}else{  

returntrue;

}  

})

}) 

</script>


<!--

正则表达式学习 

^:开始

数字:[0-9] 

$:结束 

\d:代表[0-9]

\w[0-9][A-Z][a-z]以及下划线

{n}:段域 

^[0-9]{7}$ 

^[0-9]{4,7}$

^\w{5}$ 

快速去除字符串操作

var  a="abcdefg"; 

var jj=/[b|c]/ 

while(jj.test(a)){ 

a= a.replace(jj,""); 

}

alert(a);  

--> 

</head>

<bodyonload="yzm()">

<center>

<h3>注册页面</h3>

<hr /> 

<formaction="" method="get" >

<table>

<trheight="35px">

<tdwidth="150px">用户名:</td>

<tdwidth="400px">

<inputtype="text" name="uname" id="uname" value="张三三" alt="用户名" />

<spanid="span_uname"></span>

</td>

</tr>

<trheight="35px">

<td>密码:</td>

<td>

<inputtype="password" name="pwd" id="pwd"value="123456" alt="密码"/>

<spanid="span_pwd"></span>

</td>

</tr>

<trheight="35px">

<td>手机号:</td>

<td>

<inputtype="text" name="phone" id="phone"value="18231932733" alt="手机号" />

 <spanid="span_phone"></span>

</td>

</tr>

<trheight="35px">

<td>邮箱:</td>

<td>

<inputtype="text" name="mail" id="email"value="2767501426@qq.com" alt="邮箱"  />

<spanid="span_email"></span>

</td>

</tr>

<trheight="35px">

<td>性别:</td>

<td>

男:<input type="radio"name="sex"  value="1"/>

女:<input type="radio"name="sex" value="0"/>  

</td>

</tr>

<trheight="35px">

<td>爱好:</td>

<td>

<inputtype="checkbox" name="fav" value="1" />唱歌

<inputtype="checkbox" name="fav" value="2" />睡觉

<inputtype="checkbox" name="fav" value="3" />LOL<br />

<inputtype="checkbox" name="fav" value="4"  />旅游

<inputtype="checkbox" name="fav" value="5" />高尔夫

<inputtype="checkbox" name="fav" value="6" />篮球

<spanid="span_fav"></span>

</td>

</tr>

<trheight="35px">

<td>籍贯:</td>

<td>

<selectname="adress" id="sel">

<optionvalue="0">--请选择--</option>

<optionvalue="1">河南</option>

<optionvalue="2">湖南</option>

<optionvalue="3">海南</option>

<optionvalue="4">云南</option>

</select>

<spanid="span_sel"></span>

</td>

</tr> 

<trheight="35px">

<td>验证码:</td>

<td>

<inputtype="text" style="width: 100px; height: 60px;"id="yzm1" /> 

<span id="yzm2"onclick="yzm()"></span> 

<span id="yzm3"></span>

</td>

</tr> 

<trheight="35px">

<td>个人介绍:</td>

<td>

<textareaname="intro" rows="8"cols="30"></textarea>

</td>

</tr> 

<trheight="35px">

<tdcolspan="2">

<inputtype="checkbox" name="" id="check"value="" >是否同一本公司协议

</td>

</tr>

<trheight="35px">

<tdcolspan="2">

<inputtype="submit" id="sub" value="注册" disabled="true"/>

</td>

</tr>

</table>

</form>

</center>

</body>

</html> 




jQuery中的树形菜单


<!DOCTYPEhtml>

<html>

<head>

<metacharset="utf-8">

<title>树形菜单-1</title>

<styletype="text/css">

div{

font-size:12px;

color:#000000;

line-height:22px;

}

img{

vertical-align:middle;

}

a{

font-size:13px;

color:#000000;

text-decoration:none;

}

a:hover{

font-size:13px;

color:#999999

}

.red{

color:#FF0000

}

</style> 

<scriptsrc="js/jquery-1.9.1.js"type="text/javascript"charset="utf-8"></script> 

<scripttype="text/javascript"> 

$(function(){ 

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

parent()获得父节点对象 next()得到下一个节点

var dis= $(this).parent().next().css("display"); 

if(dis=="none"){ 

$(this).parent().next().css("display","block");

children()获得子节点 

$(this).children().attr("src","img/minus.gif"); 

}else { 

$(this).parent().next().css("display","none");

find()查找到指定的节点

$(this).find("img").attr("src","img/plus.gif");

} 

}) 

})

</script>  

</head> 

<body>

<divid="div1"style="padding-left:100px;">

<div>

<ahref="javascript:void(0)"class="fir"><imgsrc="img/plus.gif"border="0">分类讨论区</a>

</div>

<divid="1"style="display:none;padding-left:15px;"><imgsrc="img/z-top.gif">BBS系统

<BR>

<imgsrc="img/z-top.gif">共建水木

<BR>

<imgsrc="img/z-top.gif">站务公告栏

<BR>

<imgsrc="img/z-top.gif">妆点水木

<BR>

<imgsrc="img/z-end.gif">申请版主

</div> 

<div>

<ahref="javascript:void(0)"class="fir"><imgsrc="img/plus.gif"border="0">分类讨论区</a>

</div>

<divid="1"style="display:none;padding-left:15px;"><imgsrc="img/z-top.gif">BBS系统

<BR>

<imgsrc="img/z-top.gif">共建水木

<BR>

<imgsrc="img/z-top.gif">站务公告栏

<BR>

<imgsrc="img/z-top.gif">妆点水木

<BR>

<imgsrc="img/z-end.gif">申请版主

</div> 

<div>

<ahref="javascript:void(0)"class="fir"><imgsrc="img/plus.gif"border="0">分类讨论区</a>

</div>

<divid="1"style="display:none;padding-left:15px;"><imgsrc="img/z-top.gif">BBS系统

<BR>

<imgsrc="img/z-top.gif">共建水木

<BR>

<imgsrc="img/z-top.gif">站务公告栏

<BR>

<imgsrc="img/z-top.gif">妆点水木

<BR>

<imgsrc="img/z-end.gif">申请版主

</div>

 

<div>

<ahref="javascript:void(0)"class="fir"><imgsrc="img/plus.gif"border="0">分类讨论区</a>

</div>

<divid="1"style="display:none;padding-left:15px;"><imgsrc="img/z-top.gif">BBS系统

<BR>

<imgsrc="img/z-top.gif">共建水木

<BR>

<imgsrc="img/z-top.gif">站务公告栏

<BR>

<imgsrc="img/z-top.gif">妆点水木

<BR>

<imgsrc="img/z-end.gif">申请版主

</div>

</div>

</body>

</html>




jQuery的图片放大器插件 jQzoom

 

官方网址:https://jquery-plugins.net/jqzoom

 

jQZoom是一个基于最流行的jQuery的图片放大器插件。它功能强大,使用简便。

支持标准模式、反转模式、无镜头、无标题的放大,并可以自定义jQZoom的窗口位置和渐隐效果,修正IE6的selectbug。

配置参数

·zoomType,默认值:’standard’,另一个值是’reverse’,是否将原图用半透明图层遮盖。

·zoomWidth,默认值:200,放大窗口的宽度。

·zoomHeight,默认值:200,放大窗口的高度。

·xOffset,默认值:10,放大窗口相对于原图的x轴偏移值,可以为负。

·yOffset,默认值:0,放大窗口相对于原图的y轴偏移值,可以为负。

·position,默认值:’right’,放大窗口的位置,值还可以是:’right’,’left’ ,’top’ ,’bottom’。

·lens,默认值:true,若为false,则不在原图上显示镜头。

·imageOpacity,默认值:0.2,当zoomType的值为’reverse’时,这个参数用于指定遮罩的透明度。

·title,默认值:true,在放大窗口中显示标题,值可以为a标记的title值,若无,则为原图的title值。

·showEffect,默认值:’show’,显示放大窗口时的效果,值可以为:‘show’ ,’fadein’。 

·hideEffect,默认值:’hide’,隐藏放大窗口时的效果:‘hide’ ,’fadeout’。

·fadeinSpeed,默认值:’fast’,放大窗口的渐显速度(选项:‘fast’,'slow’,'medium’)。

·fadeoutSpeed,默认值:’slow’,放大窗口的渐隐速度(选项:‘fast’,'slow’,'medium’)。

·showPreload,默认值:true,是否显示加载提示Loadingzoom(选项: ‘true’,'false’)。

·preloadText,默认值:’Loadingzoom’,自定义加载提示文本。

·preloadPosition,默认值:’center’,加载提示的位置,值也可以为’bycss’,以通过css指定位置。


JQuery的jqzoom插件的两种使用方法

第一种实现的方法 
注意:本方法用的是jqzoom.pack.1.0.1.js

Js代码  

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

<script src="js/jqzoom.pack.1.0.1.js" type="text/javascript"></script>

<link rel="stylesheet" type="text/css" href="style/jqzoom.css" >

<style type="text/css">

</style>

<script type="text/javascript">

$(document).ready(function(){

$(".jqzoom").jqzoom({

xzoom: 300, //设置放大 DIV 长度(默认为 200)

yzoom: 300, //设置放大 DIV 高度(默认为 200)

offset: 10, //设置放大 DIV 偏移(默认为 10)

position: "right", //设置放大 DIV 的位置(默认为右边)

preload:1,

lens:1

});

});

</script>  

Html代码  

<div>  

<a href="images/pro_img/blue_one_big.jpg" class="jqzoom">  

<img src="images/pro_img/blue_one_small.jpg" title=""/>  

</a>

</div>  


第二种方法

Js代码 

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

<script src="js/jquery.jqzoom.js" type="text/javascript"></script>

<style type="text/css">

div.zoomdiv {

z-index:999;

position: absolute;

top:0px;

left:0px;

width: 200px;

height  : 200px;

background: #ffffff;

border:1px solid #CCCCCC;

display:none;

text-align: center;

overflow: hidden;

}

div.jqZoomPup {

z-index : 999;

visibility  : hidden;

position: absolute;

top:0px;

left:0px;

width: 50px;

height  : 50px;

border: 1px solid #aaa;

background: #ffffff url(../images/zoomlens.gif) 50% top  no-repeat;;

opacity: 0.5;

-moz-opacity: 0.5;

-khtml-opacity: 0.5;

filter: alpha(Opacity=50);

}

</style>

<script type="text/javascript">

$(document).ready(function(){

$(".jqzoom").jqueryzoom({

xzoom: 300, //设置放大 DIV 长度(默认为 200)

yzoom: 300, //设置放大 DIV 高度(默认为 200)

offset: 10, //设置放大 DIV 偏移(默认为 10)

position: "right", //设置放大 DIV 的位置(默认为右边)

preload:1,

lens:1

});

});

</script>  

Html代码  

<div class="jqzoom">  

<img src="images/pro_img/blue_one_small.jpg" jqimg="images/pro_img/blue_one_big.jpg"/>  

</div> 

以上是关于jQuery的学习的主要内容,如果未能解决你的问题,请参考以下文章

[jQuery学习系列二 ]2-JQuery学习二-数组操作

[jQuery学习系列五 ]5-Jquery学习五-表单验证

从零开始学习jQuery 开天辟地入门篇

前端学习-jQuery源码学习

jQuery学习一(选择器)

[jQuery学习系列二 ]2-JQuery学习二-数组操作