jQuery笔记

jQuery笔记

1.语法
一.两种基本写法
第一种:
$(function(){

})
第二种:
$(document).ready(function(){
	
})
二.基本用法
$(this).hide();隐藏当前元素
$("p").hide();隐藏所有的p标签元素
$("p.test").hide();隐藏所有class="test"的p标签元素
$("#test").hide();隐藏所有id="test"的元素

2.jQuery绑定事件 不用加on 直接添加事件click mouseover focus blur dblclick(双击)
$(function(){
var flag=true;
$("#dd").click(function(){
if(flag){
$("#p").hide();
}else{
$("#p").show();
}
flag=!flag;
})
})
$(“input”).focus(function(){
$(this).css(“background-color”,"#cccccc");
});
3.选择器 .class #id p this [href]

$("*") 选取所有的元素
$("this") 选取当前HTML元素
$("p.intro") 选取 class 为 intro 的 <p> 元素
$("ul li:first")  选取第一个ul的第一个li
$("ul li:first-child")  选取每个ul的第一个li
$("li[href]")  选取带有 href 属性的元素
$("a[target='_blank']")  选取所有 target 属性值等于 "_blank" 的 <a> 元素
$("a[target!='_blank']")  选取所有 target 属性值不等于 "_blank" 的 <a> 元素
$(":button")  选取所有 type="button" 的 <input> 元素 和 <button> 元素
$("tr:even")  选取偶数行的 li 元素   奇数位置(从0开始)
$("tr:odd")   选取奇数行的 li 元素   偶数位置(从0开始)

$("*").hide(); 选取所有元素选取所有元素
$(this).hide(); 选取当前 HTML 元素
$("ul li:first").hide();  //选取第一个 <ul> 元素的第一个 <li> 元素
$("ul li:first-child").hide();  选取每个 <ul> 元素的第一个 <li> 元素 
$("ul li[href]").hide();  选取带有 href 属性的元素
$("ul li:odd").hide();  选取偶数行的 li 元素   奇数位置(从0开始)
$("ul li:even").hide();  选取奇数行的 li 元素    偶数位置(从0开始)
$(":button").hide();  选取所有 type="button" 的 <input> 元素 和 <button> 元素
$("a[target='_blank']").hide(); 选取所有 target 属性值等于 "_blank" 的 <a> 元素

4.jQuery效果

一.淡入淡出
fadeIn(时间,回调函数)fadeOut() fadeToggle(时间,透明度,回调函数) fadeTo()
$(selector).fadeIn(speed,callback); 淡入
$(selector).fadeOut(speed,callback); 淡出
$(selector).fadeToggle(speed,callback);  淡入淡出
$(selector).fadeTo(speed,opacity,callback);  淡入到 某个透明度使用flag时可淡入淡出

$("ul li").fadeIn(3000,function(){alert(1)})
$("ul li").fadeOut(3000,function(){alert(1)})
$("ul li").fadeToggle(3000,function(){alert(1)})
$("ul li").fadeTo(3000,0.5,function(){alert(1)})
二.滑动
slideUp(时间,回调函数) slideDown()slideToggle()
$(selector).slideDown(speed,callback);  向下滑
$(selector).slideUp(speed,callback);  向上滑
$(selector).slideToggle(speed,callback);  向上向下滑
三.动画
$(selector).animate({params},speed,callback);
必需的 params 参数定义形成动画的 CSS 属性。  属性之间要用逗号隔开   width:"+=150px"  逐渐加到150
可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。  
可选的 callback 参数是动画完成后所执行的函数名称。

$("ul li").animate({width:'600px',height:'500px',opacity:'0.5'},3000,function(){alert(1)});
$("ul li").animate({width:'+=150px',height:'+=150px',opacity:'1'},3000,function(){alert(1)});

使用队列功能  顺序执行
$("ul li").animate({width:'+=150px',opacity:'0.5'},3000,function(){alert(1)});
$("ul li").animate({height:'+=150px',opacity:'0.5'},3000,function(){alert(2)});

四.停止动画
$(selector).stop(stopAll,goToEnd);   停止正在运动的动画
可选的 stopAll 参数规定是否应该清除动画队列。默认是 false,即仅停止活动的动画,允许任何排入队列的动画向后执行。
可选的 goToEnd 参数规定是否立即完成当前动画。默认是 false。

$("ul li").stop();
$("ul li").hide(3000,function(){
  		console.log("段落现在被隐藏了");
});

五.方法链
先背景变蓝,宽度变为600px;再向上滑动,再向下滑动,然后3s透明度变为0.5,最后宽度在原来600px的基础上加150px
$("ul li").css({"background":"blue","width":"600px"}).slideUp(3000,function(){console.log("上滑");}).slideDown(3000,function(){console.log("下滑");}).fadeTo(3000,0.5,function(){console.log("淡入")}).animate({width:"+=150px"},3000,function(){console.log("动画")});

5.jQuery HTML
一.jQuery捕获
text() - 设置或返回所选元素的文本内容
html() - 设置或返回所选元素的内容(包括 HTML 标记)
val() - 设置或返回表单字段的值 //得到文本框的value值
二.jQuery 设置与回调函数
回调函数有两个参数:被选元素列表中当前元素的下标,以及原始(旧的)值。然后以函数新值返回您希望使用的字符串。
$("#div1").text(function(i,olddiv){
return “旧文本:”+olddiv+“新文本:hello World!(index:”+i+")";
});

jQuery attr() 方法也用于设置/改变属性值,允许同时设置多个属
$("#dd3").click(function(){
	$("#aa").attr({
		"href":"http://www.baidu.com",
		"title":"百度"
	})
})
提供回调函数。回调函数有两个参数:被选元素列表中当前元素的下标,以及原始(旧的)值。然后以函数新值返回您希望使用的字符串。
$("button").click(function(){
	$("#runoob").attr("href", function(i,origValue){
			return origValue + "/jquery"; 
	 });
});
三.添加元素
append() - 在被选元素的结尾插入内容
prepend() - 在被选元素的开头插入内容
after() - 在被选元素之后插入内容
before() - 在被选元素之前插入内容

$("ul li:first-child").append("在被选元素结尾追加文本");//1在被选元素结尾追加内容
$("ul li:nth-child(2)").prepend("在被选元素开头追加文本");//在被选元素开始追加文本1
$("ul li:nth-child(4)").after("被选元素之后插入内容追加文本");//after在被选元素之后插入内容
$("ul li:nth-child(6)").before("被选元素之前插入内容追加文本");//before在被选元素之前插入内容

jQuery创建元素
var txt=$("<p><p>").text("<b>love</b>");
$("ul li").append(txt);
四.删除元素
remove() - 删除被选元素(及其子元素)
empty() - 从被选元素中删除子元素

$("ul li:first-child").remove();//删除被选元素(及其子元素)
$("ul li:first-child").empty();//删除被选元素的子元素
五.CSS操作
addClass() - 向被选元素添加一个或多个类
removeClass() - 从被选元素删除一个或多个类
toggleClass() - 对被选元素进行添加/删除类的切换操作
css() - 设置或返回样式属性

$("ul li:first-child").addClass("div");//删除被选元素添加 class 属性
$("ul li:nth-child(1)").removeClass("div"); //删除被选元素的指定的 
$("ul li:nth-child(1)").toggleClass("div"); //对被选元素进行添加/删除类的切换操作
$("ul li:nth-child(2)").css({"background-color":"yellow","font-size":"200%"});
六.尺寸
width() 方法设置或返回元素的宽度(不包括内边距、边框或外边距)。
height() 方法设置或返回元素的高度(不包括内边距、边框或外边距)。
innerWidth() 方法返回元素的宽度(包括内边距)。
innerHeight() 方法返回元素的高度(包括内边距)。
outerWidth() 方法返回元素的宽度(包括内边距和边框)。
outerHeight() 方法返回元素的高度(包括内边距和边框)。

$("ul li:first").width(); //100  内容区
$("ul li:first").height(); //100 内容区 
$("ul li:first").innerWidth();  //160 内容区+补白(内边距)
$("ul li:first").innerHeight(); //160 内容区+补白(内边距)
$("ul li:first").outerWidth(); //260 内容区+补白(内边距)+边框(外边距)
$("ul li:first").outerHeight(); //260 内容区+补白(内边距)+边框(外边距)

6.JQuery 遍历
一.祖先
parent() 方法返回被选元素的直接父元素。
parents() 方法返回被选元素的所有祖先元素,它一路向上直到文档的根元素 ()。
parentsUntil() 方法返回介于两个给定元素之间的所有祖先元素

$("span").parents().css({"color":"red","fontSize":"200%","border":"1px solid red"});
$("span").parents().css({"color":"red","border":"1px solid red"});
$("span").parentsUntil("div").css({"color":"red","border":"1px solid red"})
二.后代
children()返回被选元素的所有直接子元素
find() 返回被选元素的所有后代元素,一路向下直到最后一个后代

$("div").children("p:nth-child(2)").css({"color":"red","border":"1px solid red"});  //返回被选择的元素的所有直接子元素
$("div").find("span").css({"color":"red","border":"1px solid red"}); //查找所有div下的span标签,返回被选元素的后代元素,一路向下直到最后一个后代
三.同胞
siblings()返回被选元素的所有同胞元素,左右两边都查到头
siblings("p")  返回被选元素的所有同胞p标签元素,左右两边都查到头
next()     返回被选元素的下一个元素
nextAll()   返回被选元素后面所有的元素
nextUntil("#fff")   返回被选元素介于两个给定参数之间的所有跟随的同胞元素
prev()   返回被选元素的前一个元素
prevAll() 返回被选元素前面所有的元素
prevUntil()   返回被选元素介于两个给定参数之间的所有跟随的同胞元素

$("#ff").siblings().css({"color":"red","border":"1px solid red"});
$("#ff").siblings("p").css({"color":"red","border":"1px solid red"});
$("#ff").next().css({"color":"red","border":"1px solid red"});
$("#ff").nextAll().css({"color":"red","border":"1px solid red"});
$("#ff").nextUntil("#fff").css({"color":"red","border":"1px solid red"});
四.过滤
first() 方法返回被选元素的首个元素
last() 方法返回被选元素的最后一个元素 
eq() 方法返回被选元素中带有指定索引号的元素,索引号从0开始
filter() 方法允许您规定一个标准。不匹配这个标准的元素会被从集合中删除,匹配的元素会被返回
not() 方法返回不匹配标准的所有元素

$("p").first().css({"color":"red","border":"1px solid red"});  
$("p").last().css({"color":"red","border":"1px solid red"}); 
$("p").eq(0).css({"color":"red","border":"1px solid red"}); 
$("p").filter(".ff").css({"color":"red","border":"1px solid red"}); 
$("p").not(".ff").css({"color":"red","border":"1px solid red"});

7.jQuery Ajax
一.兼容
if(window.XMLHttpRequest){
ajax=new XMLHttpRequest();
}else{
ajax=new ActiveXObject(“Microsoft.XMLHTTP”);
}
二.基本用法
第一种用法:load
jQuery load() 方法是简单但强大的 AJAX 方法。
load() 方法从服务器加载数据,并把返回的数据放入被选元素中
$(selector).load(URL,data,callback);
$("#aa").load(“http://127.0.0.1:8020/复习jQuery/ajax.txt”);

第二种用法:open send ajax.onreadystatechange
先用ajax.open(“GET/POST”,“链接”)向服务器打开接口请求,再用ajax.send()传送得到的信息,然后当readyState发生改变时,就会触发onreadyStatechange事件 ajax.onreadyStatechange=function(){},最后判断当ajax.readyState的状态值为4且ajax.status判断码为200 时,说明响应已就绪
if(window.XMLHttpRequest){
		ajax=new XMLHttpRequest();
	}else{
		ajax=new ActiveXObject("Microsoft.XMLHTTP");
	}
	ajax.open("GET","http://127.0.0.1:8020/复习jQuery/ajax.txt");
	ajax.send();
	ajax.onreadystatechange=function(){
		if(ajax.readyState==4 /*状态值*/ && ajax.status==200){//状态码判断  200 交易成功
				alert(ajax.responseText);	
			}
	}


两种在客户端和服务器端进行请求-响应的常用方法是:GET 和 POST。
	GET - 从指定的资源请求数据
	POST - 向指定的资源提交要处理的数据
$.get() 方法通过 HTTP GET 请求从服务器上请求数据。

第三种用法:get
语法:
	$.get(URL,callback);
	必需的 URL 参数规定您希望请求的 URL。
	可选的 callback 参数是请求成功后所执行的函数名
$.get() 的第一个参数是我们希望请求的 URL("demo_test.php")。
第二个参数是回调函数。第一个回调参数存有被请求页面的内容,第二个回调参数存有请求的状态。
data为执行成功后返回的值   status为success/error	
$("#dd3").click(function(){
	$.get("http://127.0.0.1:8020/复习jQuery/ajax.txt",function(data,status){
		alert("数据:"+data+"状态:"+status);
	})
})

第四种用法:post
语法:
$.post() 方法通过 HTTP POST 请求向服务器提交数据。
语法:
	$.post(URL,data,callback);
	必需的 URL 参数规定您希望请求的 URL。
	可选的 data 参数规定连同请求发送的数据。
	可选的 callback 参数是请求成功后所执行的函数名
$("#dd4").click(function(){
	$.post("http://127.0.0.1:8020/复习jQuery/ajax.php",{
		name:"菜鸟教程",
		url:"http://www.baidu.com"
	},function(data,status){
		alert("数据:"+data+"状态:"+status);
	})
})

8.jQuery noConflict
当在页面上同时使用 jQuery 和其他框架时,要先在前面加上$.noConflict(),然后其他操作就和常用的一样
一.第一种用法
$.noConflict();
jQuery(document).ready(function(){
jQuery("#dd").click(function(){
jQuery("#aa").text(“jQuery 仍然在工作”);
})
})
二.第二种用法
$.noConflict();
jQuery(function(){
jQuery("#dd").click(function(){
jQuery("#aa").text(“jQuery 仍然在工作”);
})
})
三.第三种用法
如果你的 jQuery 代码块使用 $ 简写,并且您不愿意改变这个快捷方式,那么您可以把 $ 符号作为变量传递给 ready 方法。这样就可以在函数内使用 $ 符号了 - 而在函数外,依旧不得不使用 “jQuery”
. n o C o n f l i c t ( ) ; j Q u e r y ( f u n c t i o n ( .noConflict(); jQuery(function( .noConflict();jQuery(function(){
$("#dd3").click(function(){
KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲aa").text("jQue….noConflict();
jq(function(){
jq("#dd4").click(function(){
jq("#aa").text(“jQuery 仍然在工作”);
})
})

9.jQuery JSONP

<?php
header('Content-type: application/json');
//获取回调函数名
$jsoncallback = htmlspecialchars($_REQUEST ['jsoncallback']);
//json数据
$json_data = '["customername1","customername2"]';
//输出jsonp格式的数据
echo $jsoncallback . "(" . $json_data . ")";
?>

$.getJSON("http://127.0.0.1:8020/复习jQuery/jsonp.php?jsoncallback=?",function(data){
	var html="<ul>";
	for(var i=0;i<data.length;i++){
		html+="<li>"+data[i]+"</li>";
	}
	html+="</ul>";
	$("#aa").html(html);
})

9.jQuery 实用工具

一.$.each() 遍历指定的对象和数组    

. e a c h ( [ 52 , 97 ] , f u n c t i o n ( i n d e x , v a l u e ) a l e r t ( i n d e x + ′ : ′ + v a l u e ) ; ) ; 二 . .each([52,97], function(index, value) {alert(index + &#x27;: &#x27; + value);}); 二. .each([52,97],function(index,value)alert(index+:+value););..extend() 将一个或多个对象的内容合并到目标对象
三. . i n A r r a y ( ) 在 数 组 中 查 找 指 定 值 并 返 回 它 的 索 引 值 ( 如 果 没 有 找 到 , 则 返 回 − 1 ) j Q u e r y . i n A r r a y ( &quot; J o h n &quot; , a r r ) 四 . .inArray() 在数组中查找指定值并返回它的索引值(如果没有找到,则返回-1) jQuery.inArray( &quot;John&quot;, arr ) 四. .inArray()1jQuery.inArray("John",arr)..isArray([]) 判断指定参数是否是一个数组
五.$.grep() 过滤并返回满足指定函数的数组元素
jQuery.grep(arr, function( n, i ) {
return ( n !== 5 && i > 4 );
});

10.0jQuery Validate 表单验证插件
要用jQuery validate时要先在页面中加载jquery.validate.min.js

required:true	必须输入的字段。
remote:"check.php"	使用 ajax 方法调用 check.php 验证输入值。
email:true	必须输入正确格式的电子邮件。
url:true	必须输入正确格式的网址。
date:true	必须输入正确格式的日期。日期校验 ie6 出错,慎用。
dateISO:true	必须输入正确格式的日期(ISO),例如:2009-06-23,1998/01/22。只验证格式,不验证有效性。
number:true	必须输入合法的数字(负数,小数)。
digits:true	必须输入整数。
creditcard:	必须输入合法的信用卡号。
equalTo:"#field"	输入值必须和 #field 相同。
accept:	输入拥有合法后缀名的字符串(上传文件的后缀)。
maxlength:5	输入长度最多是 5 的字符串(汉字算一个字符)。
minlength:10	输入长度最小是 10 的字符串(汉字算一个字符)。
rangelength:[5,10]	输入长度必须介于 5 和 10 之间的字符串(汉字算一个字符)。
range:[5,10]	输入值必须介于 5 和 10 之间。
max:5	输入值不能大于 5。
min:10	输入值不能小于 10。

一.提交事件
$.validator.setDefaults({
		submitHandler: function() {
  			alert("提交事件!");
		}
});	
$().ready(function() {
		$("#commentForm").validate();
});
二.将校验规则写到控件中
<label for="cname">Name (必需, 最小两个字母)</label>
 	<input id="cname" name="name" minlength="2" type="text" required>
三.将校验规则写到 js 代码中
$.validator.setDefaults({
	submitHandler: function() {  成功后执行
  			alert("提交事件!");
		}
});
$("#signupForm").validate({
		rules: {
			firstname: "required",
  			lastname: "required",
 			username: {
   				required: true,
    				minlength: 2
 			},
		password: {
    				required: true,
    				minlength: 5
  			}
	          },
	messages: {
  			firstname: "请输入您的名字",
 			lastname: "请输入您的姓氏",
  			username: {
    				required: "请输入用户名",
    				minlength: "用户名必需由两个字母组成"
  			},
  			password: {
    				required: "请输入密码",
    				minlength: "密码长度不能小于 5 个字母"
  			}
	})

<form class="cmxform" id="signupForm" method="get" action="">
	<fieldset>
			<legend>验证完整的表单</legend>
			<p>
  				<label for="firstname">名字</label>
  				<input id="firstname" name="firstname" type="text">
			</p>
			<p>
  				<label for="lastname">姓氏</label>
  				<input id="lastname" name="lastname" type="text">
			</p>
			<p>
  				<label for="username">用户名</label>
  				<input id="username" name="username" type="text">
			</p>
			<p>
  				<label for="password">密码</label>
  				<input id="password" name="password" type="password">
			</p>
    		<p>
  				<input class="submit" type="submit" value="提交">
			</p>
	</fieldset>
</form>	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值