jQuery
Posted xgbky
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery相关的知识,希望对你有一定的参考价值。
jQuery
jQuery
是一个javascript
函数库。
jQuery
是一个轻量级的JavaScript
库。
jQuery
库包含以下功能:
1 2 3 4 5 6 7
|
- html 元素选取 - HTML 元素操作 - CSS 操作 - HTML 事件函数 - JavaScript 特效和动画 - HTML DOM 遍历和修改 - AJAX 异步加载
|
jQuery介绍
jQuery
是目前使用最广泛的javascript
函数库。据统计,全世界排名前100
万的网站,有46%
使用jQuery
,远远超过其他库
微软公司甚至把jQuery
作为他们的官方库
jQuery
的版本分为1.x
系列和2.x
、3.x
系列,1.x
系列兼容低版本的浏览器;2.x
、3.x
系列放弃支持低版本浏览器,目前使用最多的是1.x
系列的
jquery
是一个函数库,一个js
文件,页面用script
标签引入这个js
文件就可以使用
1
|
<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
|
下载jQuery
基础语法
1 2 3 4 5 6 7 8 9 10 11 12
|
<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script> <script type="text/javascript"> $(document).ready( function() $("p").click( function() console.log($(this).css("color")) $(this).css("color","red"); ); ) </script> <body> <p style="color: blue;">我会变红</p> </body>
|
- Jquery基础语法:Query 语法是通过选取 HTML 元素,并对选取的元素执行某些操作
-
美元符号定义jQuery
-
选择符(selector
)查询和查找HTML
元素
-
jQuery
的action()
执行对元素的操作
文档就绪事件
- 这是为了防止文档在完全加载(就绪)之前运行
jQuery
代码,jQuery
的代码经常会位于一个document ready
函数中
1 2 3 4 5
|
$(document).ready(function()
|
jQuery
入口函数与JavaScript
入口函数的区别
jQuery
的入口函数是在html
所有标签(DOM)都加载之后,就会去执行
JavaScript
的window.onload
事件是等到所有内容,包括外部图片之类的文件加载完后,才会执行
jQuery选择器
jQuery的选择器可以更加方便我们对页面的DOM元素进行操作,而原生的操作方式是比较痛苦的
元素选择器
jQuery
选择器允许对HTML
元素组或单个元素进行操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
<head> <title></title> <script type="text/javascript" src="js/jquery-1.10.2.min.js"></script> <script type="text/javascript"> $(document).ready(function() $("p").click(function() $(this).css("color","red"); ); ); </script>
|
ID选择器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
<head> <title></title> <script type="text/javascript" src="js/jquery-1.10.2.min.js"></script> <script type="text/javascript"> $(document).ready(function() $("#change").click(function() $(this).css("color","red");
|
类选择器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
<head> <script type="text/javascript" src="js/jquery-1.10.2.min.js"></script> <script> $(document).ready(function() $("button").click(function() $(".pClass").hide(); ); ); </script> </head> <body> <p class="pClass"> 这是测试内容,点击按钮后,这里的东西会消失 </p> <button> 点击 </button> </body>
|
其他选择器
语法 | 描述 |
$(this) |
选取当前HTML 元素 |
$("*") |
选取所有元素 |
$("p.intro") |
选取class 为intro 的<p> 元素 |
$("p:first") |
选取第一个<p> 元素 |
$("ul li:first") |
选取第一个<ul> 元素的第一个<li> 元素 |
$("ul li:first-child") |
选取每个<ul> 元素的第一个<li> 元素 |
$("[href]") |
选取带有href 属性的元素 |
$("a[target=‘_blank‘]") |
选取所有target 属性值等于_blank 的<a> 元素 |
$(":button") |
选取所有type="button" 的 <input> 元素 和<button> 元素 |
$("tr:odd") |
选取奇数位置的<tr> 元素 |
jQuery遍历
1 2 3 4 5 6
|
<div> <ul> <li> <span>a</span> </li> <li> <a> b </a> </li> </ul> </div>
|
1 2 3 4 5 6 7
|
- <div> 元素是 <ul> 的父元素,同时是其中所有内容的祖先。 - <ul> 元素是 <li> 元素的父元素,同时是 <div> 的子元素 - 左边的 <li> 元素是 <span> 的父元素,<ul> 的子元素,同时是 <div> 的后代。 - <span> 元素是 <li> 的子元素,同时是 <ul> 和 <div> 的后代。 - 两个 <li> 元素是同胞(拥有相同的父元素)。 - 右边的 <li> 元素是 <a> 的父元素,<ul> 的子元素,同时是 <div> 的后代。 - <a> 元素是右边的 <li> 的子元素,同时是 <ul> 和 <div> 的后代。
|
祖先遍历
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
|
<head> <script type="text/javascript" src="js/jquery-1.10.2.min.js"></script> <script> $(document).ready(function() $("span").parent().css("border","1px solid red"); ); </script> // 这里选择到了全部span标签的父标签,li标签,并且设置红色2像素边框 </head>
<body> <div> <ul> <li> <span>普通内容1</span> </li> <br> <li> <span>普通内容2</span> <br> <a href="https://www.baidu.com">百度</a> </li> </ul> </div> </body>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
<head> <script type="text/javascript" src="js/jquery-1.10.2.min.js"></script> <script> $(document).ready(function() $("span").parents().css("border","1px solid red"); );
|
- 该方法也可以指定父元素中的某些元素进行二次过滤,比如选择所有父元素中类为
father
的元素
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
|
<!DOCTYPE html> <html> <head> <script type="text/javascript" src="js/jquery-1.10.2.min.js"></script> <script> $(document).ready(function() $("span").parents(".father").css("border","1px solid red"); );
|
parentsUntil("limit")
:向上查找,直到找到元素界限为止之前的所有父元素
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
|
<!DOCTYPE html> <html> <head> <script type="text/javascript" src="js/jquery-1.10.2.min.js"></script> <script> $(document).ready(function() $("span").parentsUntil("div").css("border","1px solid red"); );
|
后代遍历
children()
:返回被选元素的直接子元素,不会继续向深层次遍历
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
|
<!DOCTYPE html> <html> <head> <script type="text/javascript" src="js/jquery-1.10.2.min.js"></script> <script> $(document).ready(function() $("li").children().css("border","1px solid red"); );
|
find("*")
:返回被选元素的所有符合条件的直接子元素,会继续向深层次遍历
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
|
<!DOCTYPE html> <html> <head> <script type="text/javascript" src="js/jquery-1.10.2.min.js"></script> <script> $(document).ready(function() $("ul").find("*").css("border","1px solid red"); );
|
同胞遍历
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
<!DOCTYPE html> <html> <head> <script type="text/javascript" src="js/jquery-1.10.2.min.js"></script> <script> $(document).ready(function() $("span").siblings().css("border","1px solid red"); );
|
-
next()
:返回被选元素的下一个同胞元素,只返回一个元素
-
nextAll()
:返回被选元素的所有下面的同胞元素,返回所有跟随同胞
-
nextUntil("limit")
:返回直到limit
界限的所有跟随同胞,不包含limit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
<!DOCTYPE html> <html> <head> <script type="text/javascript" src="js/jquery-1.10.2.min.js"></script> <script> $(document).ready(function() $("span").next().css("border","1px solid red"); );
|
过滤方法
语法 | 描述 |
first() |
返回被选元素的首个元素 |
last() |
返回被选元素的最后个元素 |
eq() |
返回被选元素中带有指定索引号的元素,索引从0 开始 |
filter() |
规定一个标准。不匹配这个标准的元素会被从集合中删除,匹配的元素会被返回 |
not() |
返回不匹配标准的所有元素,与filter 相反 |
1 2
|
$("h3").filter(".suit");
|
判断是否选择到了元素
jquery
有容错机制,即使没有找到元素,也不会出错
可以用length
属性来判断是否找到了元素,length
等于0
,就是没选择到元素;length
大于0
,就是选择到了元素
1 2
|
var oh = $("h1"); alert(oh.length)
|
jQuery样式操作
获取样式
$("selector").css("attr")
1 2
|
$("div").css("color");
|
设置样式
-
$("selector").css("attr","xxx")
-
$("selector").css("attr1": "xxx", "attr2": "yyy")
1 2
|
$("div").css("color","blue"); $("div").css("color":"blue", "border":"1px dashed yellow");
|
- 注意:如果选择器div选择到了多个,在获取信息时,只取第一个
其他操作样式的方式
addClass()
:向被选元素添加一个或多个属性
1 2 3 4 5 6 7 8
|
<style type="text/css"> .redFont color: red;
.blueBoder border: 1px solid blue;
</style>
|
1 2 3 4 5
|
$(document).ready(function() $("button").click(function() $(".father").addClass("redFont blueBoder"); ); );
|
1 2 3 4
|
<div class="father"> 这是个div </div> <button>按钮</button>
|
removeClass()
:删除指定的class
属性
1 2 3 4 5 6 7 8
|
<style type="text/css"> .redFont color: red; .blueBoder border: 1px solid blue; </style>
|
1 2 3 4 5
|
$(document).ready(function() $("button").click(function() $(".redFont").removeClass("blueBoder"); ); );
|
1 2 3 4
|
<div class="blueBoder redFont"> 这是个div </div> <button>按钮</button>
|
toggleClass()
:设置或移除被选元素的一个或多个类进行切换
该方法检查每个元素中指定的类
如果不存在则添加类,如果已设置则删除之。这就是所谓的切换效果
1 2 3 4
|
<div class="blueBoder redFont"> 这是个div </div> <button>按钮</button>
|
1 2 3 4 5
|
$(document).ready(function() $("button").click(function() $("p").toggleClass("redFont"); ); );
|
1 2 3 4 5 6
|
<p class="redFont">第一段文字</p> <p class="redFont">第二段文字</p> <p>第三段文字</p> <p>第四段文字</p> <h3>这是h3标题</h3> <button>按钮</button>
|
jQuery事件
鼠标事件
1 2 3
|
$(selector).click(function() ... );
|
1 2 3
|
$(selector).dbclick(function() ... );
|
1 2 3
|
$(selector).mouseenter(function() ... );
|
1 2 3
|
$(selector).mouseleave(function() ... );
|
1 2 3
|
$(selector).hover(function() ... );
|
键盘事件
1 2 3
|
$(selector).keydown(function()
|
1 2 3 4 5 6 7
|
i = 0 $(document).ready(function() $("input").keypress(function() $("span").text(i+=1); ); );
|
1 2
|
<input type="text"> <p>按键的次数: <span>0</span></p>
|
1 2 3
|
$(selector).keyup(function()
|
表单事件
1 2 3
|
$("form").submit(function() alert("表单被提交"); );
|
1 2 3
|
$("input").change(function() alert("文本已被修改"); );
|
1 2 3 4
|
$("input").focus(function() $("label").fadeOut(2000); );
|
1 2
|
<label>看看这个文字</label> <input type="text">
|
1 2 3
|
$("input").blur(function() alert("输入框失去了焦点"); );
|
文档/窗口事件
load()
方法在jQuery
版本1.8
中已废弃
1 2 3
|
$("img").load(function() alert("图片已载入"); );
|
resize
:当调整浏览器窗口大小时,发生resize
事件
1 2 3
|
$(window).resize(function() $("span").text(i+=1); );
|
scroll
:当用户滚动指定的元素时,会发生scroll
事件
scroll
事件适用于所有可滚动的元素和window
对象(浏览器窗口)
1 2 3
|
$("div").scroll(function() $("span").text(x+=1); );
|
unload
:当用户离开页面时,会发生unload
事件
unload()
方法在jQuery
版本1.8
中已废弃,在3.0
版本被移除
1 2 3 4
|
$(window).unload(function() alert("Goodbye!"); );
|
获取内容和属性
text()
:设置或返回所选元素的文本内容
html()
:设置或返回所选元素的内容(包括HTML
标记)
1 2
|
<p>这是个<b>p</b>标签</p> <button>按钮</button>
|
1 2 3 4
|
$("button").click(function() console.log($("p").text());
|
1 2
|
<input type="text" value="123"> <button>按钮</button>
|
1 2 3
|
$("button").click(function() console.log($("input").val()); );
|
1 2
|
<a href="https://www.baidu.com">百度</a> <button>按钮</button>
|
1 2 3 4
|
$("button").click(function() console.log($("a").attr("href"));
|
改变内容和属性
1 2 3 4 5 6 7 8 9
|
$("button").click(function() $("#test1").text("Hello world!"); ); $("button").click(function() $("#test2").html("<b>Hello world!</b>"); ); $("button").click(function() $("#test3").val("RUNOOB"); );
|
以下是一个点击按钮将a
标签的跳转地址变为搜狗的示例
1 2
|
<a href="https://www.baidu.com">百度</a> <button>按钮</button>
|
1 2 3 4 5 6 7 8 9 10 11 12 13
|
$(document).ready(function() $("button").click(function() $("a").attr("href","https://www.sougou.com"); ); );
|
jQuery效果
显示|隐藏
hide(speed:[slow|fast], callback)
:隐藏元素
show(speed:[slow|fast], callback)
:显示元素
1 2 3
|
<p>这是一段文字</p> <button id="hide" >hide</button> <button id="show" >show</button>
|
1 2 3 4 5 6 7 8 9
|
$(document).ready(function() $("#hide").click(function() $("p").hide("slow"); );
$("#show").click(function() $("p").show(); ); );
|
toggle()
:显示被隐藏的元素,并隐藏已显示的元素
1 2
|
<p>这是一段文字</p> <button>按钮</button>
|
1 2 3
|
$("button").click(function() $("p").toggle(); );
|
淡入|淡出
1 2 3 4
|
<p id="p1">这是一段文字</p> <p id="p2">这是一段文字</p> <p id="p3">这是一段文字</p> <button>按钮</button>
|
1 2 3 4 5 6 7 8
|
$(document).ready(function() $("p").hide()
|
1 2 3 4
|
<p id="p1">这是一段文字</p> <p id="p2">这是一段文字</p> <p id="p3">这是一段文字</p> <button>按钮</button>
|
1 2 3 4 5 6 7
|
$(document).ready(function() $("button").click(function() $("#p1").fadeOut(); $("#p2").fadeOut("slow"); $("#p3").fadeOut(3000); ); );
|
fadeToggle()
:在fadeIn()
与fadeOut()
方法之间进行切换
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
<!DOCTYPE html> <html> <head> <script type="text/javascript" src="js/jquery-1.10.2.min.js"></script> <script> $(document).ready(function() $("button").click(function() $("#p1").fadeToggle(); $("#p2").fadeToggle("slow"); $("#p3").fadeToggle(3000); ); ); </script> </head>
<body> <p id="p1">这是一段文字</p> <p id="p2">这是一段文字</p> <p id="p3">这是一段文字</p> <button>按钮</button> </body> </html>
|
滑动
1 2 3 4 5
|
- slideDown(speed,callback) // 向下滑动元素 - slideUp(speed,callback) // 向上滑动元素 - slideToggle(speed,callback) // 在 slideDown() 与 slideUp() 方法之间进行切换 // 可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。 // 可选的 callback 参数是滑动完成后所执行的函数名称
|
jQuery动画
-
$(selector).animate( params, speed, callback)
-
params
:可选参数;动画形成的属性,要改变的样式值,写成字典
speed
:可选参数;动画持续的时间,单位毫秒
callback
:可选参数;动画完成后执行的函数名称
-
注意:当使用animate()
时,必须使用Camel
标记法书写所有的属性名;比如,必须使用paddingLeft
而不是padding-left
,使用 marginRight 而不是margin-right
,等等、同时,色彩动画并不包含在核心jQuery
库中
1 2
|
<p style="position: relative;">这是一段文字</p> <button>按钮</button>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
$(document).ready(function() $("button").click(function() $("p").animate( left: "+=300px", fontSize: "100px", , "slow", function(argument) alert("动画完成") ) ) );
|
jQuery获取表单数据
1 2 3 4
|
$("input[type=radio]:checked").val()
|
1 2 3 4 5
|
var res = new Array; var olike = $("input:checkbox[name=‘like‘]:checked").each(function() res.push($(this).val()) )
|
1
|
$("select[name=‘city‘]").val();
|
jQuery正则
正则规则
1 2 3 4 5 6 7 8 9
|
- \d:匹配一个数字 - \D:匹配一个非数字,即除了0-9 - \w:匹配字母、数字、下划线 - \W:匹配非单词字符,等价于\[^A-Za-z0-9_\] - \s:匹配一个空白符 - \S:匹配一个非空白符 - \b:匹配单词边界 - \B:匹配非单词边界 - .:匹配任意字符
|
开头结尾
正则次数
1 2 3 4
|
- ?:出现零次或一次;最多出现一次 - +:出现一次或多次;至少出现一次 - *:出现零次或多次;任意次 - n,m:出现n-m次
|
匹配范围
1 2
|
- [a-z]:匹配任意小写字母 - [0-9]:匹配任意数字
|
正则语法
创建正则表达式
1 2
|
var regex = /[a-z]+$/ ;
|
1 2 3
|
- g:全局的匹配(匹配多次;) - i:大小写不敏感匹配(忽略字符大小写) - m:多行(^和$能匹配行结束符)
|
捕获型|非捕获型
正则判断方法
regex.exec
:将匹配到的文本保存到一个结果数组
- 本身的表达式是一个包含分组匹配的,那么使用
exec
可以将每个分组保存到数组结果的依次位置中
regex.test
:匹配成功返回true
,否则返回假
常用正则规则
1 2 3 4 5 6 7
|
regAccount = /^\w6,20$/;
|
1 2 3
|
sStr = "123456" regex = /\d+/ alert(regex.test(sStr));
|
AJAX
$.ajax([settings])
:执行ajax
请求
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
|
$(document).ready(function() $("button").click(function() $.ajax( url: "/ajax/",
|
关于ajax
与django
等服务端后台进行通信的示例还在后头儿,敬请期待
以上是关于jQuery的主要内容,如果未能解决你的问题,请参考以下文章
JQueryJQuery基本操作
jQueryjquery插件封装
jQueryjQuery与Ajax的应用
jQueryjquery.metadata.js验证失效
Jqueryjquery刷新页面(局部及全页面刷新)
JqueryjQuery获取URL參数的两种方法