JQuery
jquery语法
1 | //防止文档在完全加载(就绪)之前运行 jQuery 代码,即在 DOM 加载完成后才可以对 DOM 进行操作。 |
jquery 选择器
元素选择器
获取页面所有
元素
1 | $("p") |
#id 选择器
通过 id 选取元素语法如下
1 | $("#test") |
.class 选择器
通过指定的 class 查找元素
1 | $(".test") |
nextAll()
获取下一个元素的所有同级元素
1 | $('#div1').nextAll('p').css({color:'red'}); |
prev()
获取下一个元素的所有同级元素
1 | $('#div1').prev('p').css({color:'red'}); |
parent()
获取父元素
1 | $('#span01').parent().css({width:'100px',height:'100px',background:'gold'}); |
closest()
选取最近的元素,可以是父级,可以是子级
1 | $('#span02').closest('div').css({width:'200px',height:'200px',background:'pink'}); |
- 链式调用
1 | // $('.list li'):不能回到父级 |
- 更多实例
语法 | 描述 |
---|---|
$(“*”) | 选取所有元素 |
$(this) | 选取当前 HTML 元素 |
$(“p.intro”) | 选取 class 为 intro 的 元素 |
$(“p:first”) | 选取第一个 元素 |
$(“ul li:first”) | 选取第一个
|
$(“ul li:first-child”) | 选取每个
|
$(“[href]”) | 选取带有 href 属性的元素 |
$(“a[target=’_blank’]”) | 选取所有 target 属性值等于 “_blank” 的 元素 |
$(“a[target!=’_blank’]”) | 选取所有 target 属性值不等于 “_blank” 的 元素 |
$(“:button”) | 选取所有 type=”button” 的 元素 和 |
$(“tr:even”) | 选取偶数位置的 |
$(“tr:odd”) | 选取奇数位置的 |
jquery事件
鼠标事件
click() 单击事件 $(selector).click()
1
2
3$("p").click(function(){
alert("段落被点击了。");
});dblclik() 双击事件 $(selector).dblclick()
1
2
3$("p").dblclick(function(){
alert("这个段落被双击。");
});mouseenter() 鼠标经过事件 $(selector).mouseenter()
1
2
3$("p").mouseenter(function(){
$("p").css("background-color","yellow");
});mouseleave() 鼠标离开事件 $(selector).mouseleave()
1
2
3
4// 当鼠标指针离开 <p> 元素时,设置背景色为灰色
$("p").mouseleave(function(){
$("p").css("background-color","gray");
});hover() 鼠标指针悬停事件 $(selector).hover(inFunction,outFunction)
1
2
3
4
5$("p").hover(function(){
$("p").css("background-color","yellow");
},function(){
$("p").css("background-color","pink");
});
键盘事件
keypress() 监控键盘按下 $(selector).keypress()
1
2
3$("input").keypress(function(){
$("span").text(i+=1);
});keydown() 监控键盘按下过程 $(selector).keydown()
1
2
3$("input").keydown(function(){
$("input").css("background-color","yellow");
});keyup() 键盘松开 $(selector).keyup()
1
2
3$("input").keyup(function(){
$("input").css("background-color","pink");
});
表单事件
sumbit() 提交表单事件 $(selector).submit()
1
2
3$("form").submit(function(){
alert("提交");
});change() 监听表单修改事件 $(selector).change()
1
2
3$("input").change(function(){
alert("文本已被修改");
});focus() 表单获取焦点事件 $(selector).focus()
1
2
3$("input").focus(function(){
$("span").css("display","inline").fadeOut(2000);
});blur() 表单失去焦点事件 $(selector).blur()
1
2
3$("input").blur(function(){
alert("输入框失去了焦点");
});
文档/窗口事件
load() 当元素全部加载完成时触发 $(selector).load() load() 方法在 jQuery 版本 1.8 中[已废弃]
1
2
3$("img").load(function(){
alert("图片已载入");
});resize() 当调整浏览器窗口时触发 $(selector).resize()
1
2
3$(window).resize(function(){
$('span').text(x+=1);
});scroll() 当用户滚动指定的元素时,会发生 scroll 事件 $(selector).scroll()
1
2
3$("div").scroll(function(){
alert("滚动触发")
});unload() 当用户离开页面时,会发生 unload 事件 **unload() 方法在 jQuery 版本 1.8 中[被废弃],在 3.0 版本被移除 ** $(selector).unload(function)
jquery样式操作
读取样式
1
alert( $('.div1').css('fontSize') );
写入样式
1
2$('.div1').css({background:'gold'});
$("p").css({"background-color":"yellow","font-size":"200%"});添加样式
1
2
3
4
5$('.div1').addClass('big');
$("button").click(function(){
$("body div:first").addClass("important blue");
});删除样式
1
2
3
4
5$('.div1').removeClass('div1');
$("button").click(function(){
$("h1,h2,p").removeClass("blue");
});添加/ 删除操作
1
2
3$("button").click(function(){
$("h1,h2,p").toggleClass("blue");
});
jquery动画效果
显示/隐藏
1
2
3
4
5
6
7
8
9
10
11// 第一个是动画效果时间; 第二个是回调函数
$(selector).hide(speed,callback);
$(selector).show(speed,callback);
//隐藏
$("button").click(function(){
$("p").hide(1000);
});
//显示
$("button").click(function(){
$("p").show(1000);
});淡入淡出
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44fadeIn()
/** fadeIn() 用于淡入已隐藏的元素
可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。.
可选的 callback 参数是 fading 完成后所执行的函数名称。
*/
$("button").click(function(){
$("#div1").fadeIn();
$("#div2").fadeIn("slow");
$("#div3").fadeIn(3000);
});
fadeOut()
/** fadeOut() 方法用于淡出可见元素。
可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。
可选的 callback 参数是 fading 完成后所执行的函数名称。
*/
$("button").click(function(){
$("#div1").fadeOut();
$("#div2").fadeOut("slow");
$("#div3").fadeOut(3000);
});
fadeToggle()
/**
fadeToggle() 方法可以在 fadeIn() 与 fadeOut() 方法之间进行切换。
*/
$("button").click(function(){
$("#div1").fadeToggle();
$("#div2").fadeToggle("slow");
$("#div3").fadeToggle(3000);
});
fadeTo()
/**
$(selector).fadeTo(speed,opacity,callback);
fadeTo() 方法允许渐变为给定的不透明度(值介于 0 与 1 之间)
fadeTo() 方法中必需的 opacity 参数将淡入淡出效果设置为给定的不透明度(值介于 0 与 1 之间)。
*/
$("button").click(function(){
$("#div1").fadeTo("slow",0.15);
$("#div2").fadeTo("slow",0.4);
$("#div3").fadeTo("slow",0.7);
});滑动
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26slideDown()
/**
$(selector).slideDown(speed,callback);
可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。
可选的 callback 参数是滑动完成后所执行的函数名称。
*/
$("#flip").click(function(){
$("#panel").slideDown();
});
slideUp()
/**
$(selector).slideUp(speed,callback);
*/
$("#flip").click(function(){
$("#panel").slideUp();
});
slideToggle()
/**
$(selector).slideToggle(speed,callback);
slideToggle() 方法可以在 slideDown() 与 slideUp() 方法之间进行切换。
*/
$("#flip").click(function(){
$("#panel").slideToggle();
});动画
1
2
3
4
5
6
7
8
9
10
11
12$("button").click(function(){
var div=$("div");
div.animate({height:'300px',opacity:'0.4'},"slow");
div.animate({width:'300px',opacity:'0.8'},"slow");
div.animate({height:'100px',opacity:'0.4'},"slow");
div.animate({width:'100px',opacity:'0.8'},"slow");
});
/**
$(selector).animate({params},speed,callback);
必需的 params 参数定义形成动画的 CSS 属性。
可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。
*/停止动画
1
2
3$("#stop").click(function(){
$("#panel").stop();
});
jquery 操作 html DOM
捕获
获取内容
- text() - 设置或返回所选元素的文本内容
- html() - 设置或返回所选元素的内容(包括 HTML 标签)
- val() - 设置或返回表单字段的值
1
2
3
4
5
6
7
8
9$("#btn1").click(function(){
alert("Text: " + $("#test").text());
});
$("#btn2").click(function(){
alert("HTML: " + $("#test").html());
});
$("#btn1").click(function(){
alert("值为: " + $("#test").val());
});获取属性 - attr()
1
2
3$("button").click(function(){
alert($("#runoob").attr("href"));
});
设置
设置内容和属性
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32// 设置内容
$("#btn1").click(function(){
$("#test1").text("Hello world!");
});
$("#btn2").click(function(){
$("#test2").html("<b>Hello world!</b>");
});
$("#btn3").click(function(){
$("#test3").val("RUNOOB");
});
// 方法二 回调函数
$("#btn1").click(function(){
$("#test1").text(function(i,origText){
return "旧文本: " + origText + " 新文本: Hello world! (index: " + i + ")";
});
});
$("#btn2").click(function(){
$("#test2").html(function(i,origText){
return "旧 html: " + origText + " 新 html: Hello <b>world!</b> (index: " + i + ")";
});
});
// 设置属性
$("button").click(function(){
$("#runoob").attr("href","http://www.runoob.com/jquery");
});
// 方法二 回调函数
$("button").click(function(){
$("#runoob").attr("href", function(i,origValue){
return origValue + "/jquery";
});
});
添加删除元素/ 获取元素尺寸
添加元素
- append() - 在被选元素的结尾插入内容
- prepend() - 在被选元素的开头插入内容
- after() - 在被选元素之后插入内容
- before() - 在被选元素之前插入内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24$("p").append("追加文本");
$("p").prepend("在开头追加文本");
function appendText(){
var txt1="<p>文本-1。</p>"; // 使用 HTML 标签创建文本
var txt2=$("<p></p>").text("文本-2。"); // 使用 jQuery 创建文本
var txt3=document.createElement("p");
txt3.innerHTML="文本-3。"; // 使用 DOM 创建文本 text with DOM
$("body").append(txt1,txt2,txt3); // 追加新元素
}
$("img").after("在后面添加文本");
$("img").before("在前面添加文本");
function afterText()
{
var txt1="<b>I </b>"; // 使用 HTML 创建元素
var txt2=$("<i></i>").text("love "); // 使用 jQuery 创建元素
var txt3=document.createElement("big"); // 使用 DOM 创建元素
txt3.innerHTML="jQuery!";
$("img").after(txt1,txt2,txt3); // 在图片后添加文本
}删除元素
- remove() - 删除被选元素(及其子元素)
- empty() - 从被选元素中删除子元素
1
2
3
4$("#div1").remove();
$("#div1").empty();
// 删除 class="italic" 的所有 <p> 元素:
$("p").remove(".italic");尺寸
- width()
- height()
- innerWidth()
- innerHeight()
- outerWidth()
- outerHeight()
1
2
3
4
5
6width() 方法设置或返回元素的宽度(不包括内边距、边框或外边距)。
height() 方法设置或返回元素的高度(不包括内边距、边框或外边距)
innerWidth() 方法返回元素的宽度(包括内边距)。
innerHeight() 方法返回元素的高度(包括内边距)。
outerWidth() 方法返回元素的宽度(包括内边距和边框)。
outerHeight() 方法返回元素的高度(包括内边距和边框)。
jquery 遍历DOM
向上遍历 DOM 树
- parent()
- parents()
- parentsUntil()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19/**
parent() 方法返回被选元素的直接父元素。
该方法只会向上一级对 DOM 树进行遍历。
*/
$(document).ready(function(){
$("span").parent();
});
/**
parents() 方法返回被选元素的所有祖先元素,它一路向上直到文档的根元素
*/
$(document).ready(function(){
$("span").parents();
});
/**
parentsUntil() 方法返回介于两个给定元素之间的所有祖先元素。
*/
$(document).ready(function(){
$("span").parentsUntil("div");
});向下遍历
- children()
- find()
1
2
3
4
5
6
7
8
9
10
11
12
13/**
children() 方法返回被选元素的所有直接子元素。
该方法只会向下一级对 DOM 树进行遍历。
*/
$(document).ready(function(){
$("div").children("p.1");
});
/**
find() 方法返回被选元素的后代元素,一路向下直到最后一个后代。
*/
$(document).ready(function(){
$("div").find("span");
});同级遍历
siblings()
siblings() 方法返回被选元素的所有同胞元素。
next()
next() 方法返回被选元素的下一个同胞元素。该方法只返回一个元素。
nextAll()
nextAll() 方法返回被选元素的所有跟随的同胞元素。
nextUntil()
nextUntil() 方法返回介于两个给定参数之间的所有跟随的同胞元素。
prev()
prevAll()
prevUntil()
prev(), prevAll() 以及 prevUntil() 方法的工作方式与上面的方法类似,只不过方向相反而已:它们返回的是前面的同胞元素
过滤
- first() 方法返回被选元素的首个元素。
- last() 方法返回被选元素的最后一个元素。
- eq() 方法返回被选元素中带有指定索引号的元素。
- filter() 方法允许您规定一个标准。不匹配这个标准的元素会被从集合中删除,匹配的元素会被返回。
- not() 方法返回不匹配标准的所有元素。not() 方法与 filter() 相反。
ajax异步请求
load() 方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14$(selector).load(URL,data,callback);
/**
必需的 URL 参数规定您希望加载的 URL。
可选的 data 参数规定与请求一同发送的查询字符串键/值对集合。
可选的 callback 参数是 load() 方法完成后所执行的函数名称。
*/
$("button").click(function(){
$("#div1").load("demo_test.txt",function(responseTxt,statusTxt,xhr){
if(statusTxt=="success")
alert("外部内容加载成功!");
if(statusTxt=="error")
alert("Error: "+xhr.status+": "+xhr.statusText);
});
});get() 和 post() 方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36// get
/**
$.get(URL,callback);
或
$.get( URL [, data ] [, callback ] [, dataType ] )
URL:发送请求的 URL字符串。
data:可选的,发送给服务器的字符串或 key/value 键值对。
callback:可选的,请求成功后执行的回调函数。
dataType:可选的,从服务器返回的数据类型。默认:智能猜测(可以是xml, json, script, 或 html)。
*/
$("button").click(function(){
$.get("demo_test.php",function(data,status){
alert("数据: " + data + "\n状态: " + status);
});
});
//post
/**
$.post(URL,callback);
或
$.post( URL [, data ] [, callback ] [, dataType ] )
URL:发送请求的 URL字符串。
data:可选的,发送给服务器的字符串或 key/value 键值对。
callback:可选的,请求成功后执行的回调函数。
dataType:可选的,从服务器返回的数据类型。默认:智能猜测(可以是xml, json, script, 或 html)。
*/
$("button").click(function(){
$.post("/try/ajax/demo_test_post.php",
{
name:"菜鸟教程",
url:"http://www.runoob.com"
},
function(data,status){
alert("数据: \n" + data + "\n状态: " + status);
});
});
jquery input 验证
jquery cookie
创建cookie并设置有效期
1
$.cookie('name', 'value', { expires: 7 });
读取cookie
1
$.cookie(); // => { "name": "value" }
写入cookie
1
2
3
4
5
6
7
8
9
10
11// cookie 删除成功返回 true,否则返回 false
$.removeCookie('name'); // => true
$.removeCookie('nothing'); // => false
// 写入使用了 path时,读取也需要使用相同的属性 (path, domain)
$.cookie('name', 'value', { path: '/' });
// 以下代码【删除失败】
$.removeCookie('name'); // => false
// 以下代码【删除成功】
$.removeCookie('name', { path: '/' }); // => true
jquery 提示框
下载好插件后导入 jQuery 库
1
2
3<script src="https://cdn.bootcss.com/jquery/2.0.2/jquery.min.js" type="text/javascript"></script>
<script src="https://static.jyshare.com/assets/jquery/jquery.growl/javascripts/jquery.growl.js" type="text/javascript"></script>
<link href="https://static.jyshare.com/assets/jquery/jquery.growl/stylesheets/jquery.growl.css" rel="stylesheet" type="text/css" />使用插件
1
2
3
4$.growl({ title: "消息标题", message: "消息内容!" });
$.growl.error({ title: "错误标题", message: "错误消息内容!" });
$.growl.notice({title: "提醒标题", message: "提醒消息内容!" });
$.growl.warning({title: "警告标题", message: "警告消息内容!" });