文章目录
jQuery
1. jQuery介绍
Why is jQuery?
jQuery,就是JavaScript和查询(Query),它就是辅助JavaScript开发的js类库。
jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。(来自百度百科)
jQuery 是一个 JavaScript 库。
jQuery 极大地简化了 JavaScript 编程。
jQuery 很容易学习。
jQuery优势:jQuery是免费的、开源的,jQuery的语法设计可以使开发更加便捷,例如操作文档对象、选择DOM元素、制作动画效果、事件处理、使用Ajax以及其他功能。
2. jQuery初试
我们使用jQuery库的时候需要引入jQuery库,即需要引入该文件。
<script type="text/javascript" src = "../script/jquery-1.7.2.js"></script> //引入jQuery库
src位置是我当前放置的jQuery文件的位置。
如何判断jQuery是否引入成功,我们可以通过alert($)
测试一下,如下代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src = "../script/jquery-1.7.2.js"></script>
//引入jQuary库
<script type="text/javascript">
alert($)
</script>
</head>
<body>
<button id="btnId">SayHello</button>
</body>
</html>
我们运行发现有该提示框弹出,里面显示jQuery库函数,即为引入成功!
需求:使用jQuery给一个按钮绑定单击事件。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
<script type="text/javascript">
// window.onload = function () {
// var btnObj = document.getElementById("btnId");
// // alert(btnObj);//[object HTMLButtonElement] ====>>> dom对象
// btnObj.onclick = function () {
// alert("js 原生的单击事件");
// }
// }
$(function () { // 表示页面加载完成 之后,相当 window.onload = function () {}
var $btnObj = $("#btnId"); // 表示按id查询标签对象
$btnObj.click(function () { // 绑定单击事件
alert("jQuery 的单击事件");
});
});
</script>
</head>
<body>
<button id="btnId">SayHello</button>
</body>
</html>
运行结果:
注意:
- 使用jQuery一定要引入jQuery库
- jQuery中的$是一个函数
3. jQuery核心函数
$ 是 jQuery的核心函数,能完成jQuery的很多功能。$()就是调用 $ 这个函数
- 当传入参数为函数时:
表示页面加载完成之后。相当于window.onload = function(){}
- 当传入参数为HTML字符串时:
会为我们创建这个html标签对象 - 当传入参数为选择器字符串时:
$("#id 属性值");
id选择器,根据id查询标签对象
$("标签名");
标签名选择器,根据指定的标签名查询标签对象
$(".class 属性值");
类型选择器,可以根据class属性查询标签对象 - 当传入参数为DOM对象时:
会把这个dom对象转化为jQuery对象
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
<script type="text/javascript">
//核心函数的4个作用
$(function () {
// alert("页面加载完成之后,自动调用");
$(" <div>" +
" <span>div-span1</span>" +
" <span>div-span2</span>" +
" </div>").appendTo("body");
// alert($("button").length);
var btnObj = document.getElementById("btn01");
// alert(btnObj);
// alert( $(btnObj) );
// alert( $("<h1></h1>") );
alert($("button"));
});
//传入参数为[函数]时:在文档加载完成后执行这个函数
//传入参数为[HTML字符串]时:根据这个字符串创建元素节点对象
//传入参数为[选择器字符串]时:根据这个字符串查找元素节点对象
//传入参数为[DOM对象]时:将DOM对象包装为jQuery对象返回
</script>
</head>
<body>
<button id="btn01">按钮1</button>
<button>按钮2</button>
<button>按钮3</button>
</body>
</html>
4. jQuery对象和dom对象区分
Dom对象
- 通过getElementByld()查询出来的标签对象是Dom对象
- 通过getElementsByName()查询出来的标签对象是Dom对象
- 通过getElementsByTagName()查询出来的标签对象是Dom对象
- 通过createElement()方法创建的对象,是Dom对象
DOM对象通过alert()函数表示出来的效果是:[object HTML 标签名 Element]
jQuery对象
- 通过jQuery提供的API创建的对象,是jQuery对象
- 通过jQuery包装的Dom对象,也是jQuery对象
- 通过jQuery提供的API查询到的对象,是jQuery对象
jQuary对象通过alert()函数表示出来的效果是:[object Object]
jQuery 对象是 dom 对象的数组 + jQuery 提供的一系列功能函数
jQuery对象不能使用DOM对象的属性和方法
DOM对象也不能使用jQuery对象的属性和方法
- Dom对象和jQuery对象互转
- dom对象转化为jQuery对象
- 先有DOM对象
- $(DOM对象) 就可以转化为jQuery对象
- jQuery对象转为dom对象
- 先有jQuery对象
- jQuery对象[下标]取出相应的Dom对象
5. jQuery选择器
5.1 基本选择器
- id选择器
$("#ids")
其中的ids是一个标签的id值而$("#ids")
就是满条件的标签 - 类选择器
$(".myclass")
其中的myclass就是class = "myclass"的值,而$(".myclass")
就是获取类为myclass的所有标签,有可能是一个标签有可能是多个。 - 元素选择器
$("div")
就是选择所有的div标签。 - 通配符选择器
$("*")
选择页面上的所有元素 - 逗号分隔
$("#ids,""myclass")
选择id为ids的和类为myclass 的标签,合并两个选择器的结果并返回
5.2 层级选择器
实例:给出Html代码:
<form>
<label>Name:</label>
<input name="name" />
<fieldset>
<label>Newsletter:</label>
<input name="newsletter" />
</fieldset>
</form>
<input name="none" />
1、ancsetor decendant 后代选择器:在给定的祖先元素下匹配所有的后代元素。
- ancestor:任何有效的选择器
- descendant:用以匹配元素的选择器,并且它是第一个选择器的后代元素
jQuery代码:
$("form input") //找到表单中所有的input元素
结果:
[<input name = "name " />,<input name="newsletter" /> ]
2、 parent > child 子元素选择器:在给定的父元素下匹配所有的子元素。
- parent:任何有效选择器
- child:用以匹配元素的选择器,并且它是第一个选择器的子元素
$("form > input") //匹配表单中所有的子级input元素。
结果:
[ <input name="name" /> ]
3、 parent > prev + next 相邻元素选择器:匹配所有紧接在 prev 元素后的 next 元素。
- prev:任何有效选择器
- next:一个有效选择器并且紧接着第一个选择器
jQuery 代码:
$("label + input") //匹配所有跟在 label 后面的 input 元素
结果:
[ <input name="name" />, <input name="newsletter" /> ]
4、 parent > prev ~ sibings 之后的兄弟元素选择器:匹配 prev 元素之后的所有 siblings 元素。
- prev:任何有效选择器
- siblings:一个选择器,并且它作为第一个选择器的同辈
jQuery 代码:
$("form ~ input") //找到所有与表单同辈的 input 元素
结果:
[ <input name="none" /> ]
5.3 过滤选择器
基本选择器
基本选择器 | 概念 |
---|---|
:first | 获取第一个元素 |
:last | 获取最后个元素 |
:not(selector) | 去除所有与给定选择器匹配的元素 |
:even | 匹配所有索引值为偶数的元素,从 0 开始计数 |
:odd | 匹配所有索引值为奇数的元素,从 0 开始计数 |
:eq(index) | 匹配一个给定索引值的元素 |
:gt(index) | 匹配所有大于给定索引值的元素 |
:lt(index) | 匹配所有小于给定索引值的元素 |
:header | 匹配如 h1, h2, h3 之类的标题元素 |
:animated | 匹配所有正在执行动画效果的元素 |
内容过滤器
内容过滤器 | 概念 |
---|---|
:contains(text) | 匹配包含给定文本的元素 |
:empty | 匹配所有不包含子元素或者文本的空元素 |
:parent | 匹配含有子元素或者文本的元素 |
:has(selector) | 匹配含有选择器所匹配的元素的元素 |
属性过滤器
属性过滤器 | 概念 |
---|---|
[attribute] | 匹配包含给定属性的元素。 |
[attribute=value] | 匹配给定的属性是某个特定值的元素 |
[attribute!=value] | 匹配所有不含有指定的属性,或者属性不等于特定值的元素。 |
[attribute^=value] | 匹配给定的属性是以某些值开始的元素 |
[attribute$=value] | 匹配给定的属性是以某些值结尾的元素 |
[attribute*=value] | 匹配给定的属性是以包含某些值的元素 |
[attrSel1][attrSel2][attrSelN] | 复合属性选择器,需要同时满足多个条件时使用。 |
表单过滤器
表单过滤器 | 概念 |
---|---|
:input | 匹配所有 input, textarea, select 和 button 元素 |
:text | 匹配所有 文本输入框 |
:password | 匹配所有的密码输入框 |
:radio | 匹配所有的单选框 |
:checkbox | 匹配所有的复选框 |
:submit | 匹配所有提交按钮 |
:image | 匹配所有 img 标签 |
:reset | 匹配所有重置按钮 |
:button | 匹配所有 input type=button 按钮 |
:file | 匹配所有 input type=file 文件上传 |
:hidden | 匹配所有不可见元素 |
表单对象属性过滤器
表单对象属性过滤器 | 概念 |
---|---|
:enabled | 匹配所有可用元素 |
:disabled | 匹配所有不可用元素 |
:checked | 匹配所有选中的单选,复选,和下拉列表中选中的 option 标签对象 |
:selected | 匹配所有选中的 option |
6. jQuery元素筛选
eq() | 获取给定索引的元素 | 功能跟 :eq() 一样 |
first() | 获取第一个元素 | 功能跟 :first 一样 |
last() | 获取最后一个元素 | 功能跟 :last 一样 |
filter(exp) | 留下匹配的元素 | |
is(exp) | 判断是否匹配给定的选择器,只要有一个匹配就返回,true | |
has(exp) | 返回包含有匹配选择器的元素的元素 | 功能跟 :has 一样 |
not(exp) | 删除匹配选择器的元素 | 功能跟 :not 一样 |
children(exp) | 返回匹配给定选择器的子元素 | 功能跟 parent>child 一样 |
find(exp) | 返回匹配给定选择器的后代元素 | 功能跟 ancestor descendant 一样 |
next() | 返回当前元素的下一个兄弟元素 | 功能跟 prev + next 功能一样 |
nextAll() | 返回当前元素后面所有的兄弟元素 | 功能跟 prev ~ siblings 功能一样 |
nextUntil() | 返回当前元素到指定匹配的元素为止的后面元素 | |
parent() | 返回父元素 | |
prev(exp) | 返回当前元素的上一个兄弟元素 | |
prevAll() | 返回当前元素前面所有的兄弟元素 | |
prevUnit(exp) | 返回当前元素到指定匹配的元素为止的前面元素 | |
siblings(exp) | 返回所有兄弟元素 | |
add() | 把 add 匹配的选择器的元素添加到当前 jquery |