jQuery 了解一下
作为后端开发人员,有必要了解一下jQuery的一些知识,主要是要明白jQury和JavaScript的区别,以及jQury的选择器
一、jQuery 入门
1. 对比 jQuery 和 JavaScript 实现按钮单击事件
主体:
<body>
<button id = "btnId"> SayHello </button>
</body>
JavaScript实现:
<script type="text/javascript">
window.onload = function () {
var btnObj = document.getElementById("btnId");
alert(btnObj);//[object HTMLButtonElement] ====>>> dom对象
btnObj.onclick = function () {
alert("js 原生的单击事件");
}
}
</script>
jQuery实现:
<head>
<script type="text/javascript" src="jquery.js"></script>//导入jQuery库
</head>
<script>
$(function () { // 表示页面加载完成 之后,相当 window.onload = function () {}
var $btnObj = $("#btnId"); // 表示按id查询标签对象
$btnObj.click(function () { // 绑定单击事件
alert("jQuery 的单击事件");
});
});
</script>
2. $ 函数
- jQuery 中的 $() 表示一个函数
-
传入参数为 [ 函数 ] 时:
在html加载完成后执行这个函数。相当于 window.onload = function(){} -
传入参数为 [ HTML 字符串 ] 时:会创建这个 html 标签对象
$(
"<div>" +
"<span>div-span1</span>" +
"<span>div-span2</span>" +
"</div>"
).appendTo("body");
- 传入参数为 [ 选择器字符串 ]时:
-
$(“#id 属性值”); id 选择器,根据 id 查询标签对象
-
$(“标签名”);标签名选择器,根据指定的标签名查询标签对象
-
$(“.class 属性值”); 类型选择器,可以根据 class 属性查询标签对象
- 传入参数为 [ DOM 对象 ] 时:
- 将 DOM 对象包装为jQuery 对象返回
var btnObj = document.getElementById("btn01");//DOM对象
- 将 DOM 对象包装为jQuery 对象返回
3. jQuery 对象和 DOM 对象
1. Dom 对象
- 通过 getElementById() 查询出来的标签对象是 Dom 对象
- 通过 getElementsByName() 查询出来的标签对象是 Dom 对象
- 通过 getElementsByTagName() 查询出来的标签对象是 Dom 对象
- 通过 createElement() 方法创建的对象,是 Dom 对象
DOM 对象 Alert 出来的效果是:[object HTML 标签名 Element]
2. jQuery 对象
- 通过 JQuery 提供的 API 创建的对象,是 JQuery 对象
- 通过 JQuery 包装的 Dom 对象,也是 JQuery 对象
- 通过 JQuery 提供的 API 查询到的对象,是 JQuery 对象
jQuery 对象 Alert 出来的效果是:[object Object]
- jQuery 对象不能使用 DOM 对象的属性和方法 - DOM 对象也不能使用 jQuery 对象的属性和方法
3. 转换
-
dom 对象转化为 jQuery 对象
$( DOM 对象 )就可以转换成为 jQuery 对象 -
jQuery 对象转为 dom 对象
jQuery 对象[下标]取出相应的 DOM 对象
$(document.getElementById("testDiv"))[0]
二、jQuery 选择器
1. 基本选择器 (id、class、标签元素)
-
#ID 选择器:根据 id 查找标签对象
-
.class 选择器:根据 class 查找标签对象
-
element 选择器:根据标签名查找标签对象
-
* 选择器:表示任意的,所有的元素
-
selector1,selector2 组合 选择器:合并选择器 1,选择器 2 的结果并返回
2. 层级选择器
-
后代选择器 :
$("body div"):选择 body 内的所有 div 元素 -
子元素选择器:
$("body > div"):在 body 内, 选择div子元素 -
相邻元素选择器:
$("#one + div"):选择 id 为 one 的下一个 div 元素 -
之后的兄弟元素选择器:
$("#two ~ div"):选择 id 为 two 的元素后面的所有 div 兄弟元素
3. jQuery过滤器选择器
1. 基本过滤器
-
:first获取第一个元素:
$("div:first"):"选择第一个 div 元素" -
:last获取最后个元素:
$("div:last"):"选择最后一个 div 元素" -
:not(selector)去除所有与给定选择器匹配的元素:
$("div:not(.one)"):"选择class不为 one 的所有 div 元素" -
:even匹配所有索引值为偶数的元素,从 0 开始计数:
$("div:even"):"选择索引值为偶数的 div 元素" -
:odd匹配所有索引值为奇数的元素,从 0 开始计数:
$("div:odd"):"选择索引值为奇数的 div 元素" -
:eq(index)匹配一个给定索引值的元素:
$("div:gt(3)"):"选择索引值为大于 3 的 div 元素" -
:gt(index)匹配所有大于给定索引值的元素:
$("div:eq(3)"):"选择索引值为等于 3 的 div 元素" -
:lt(index)匹配所有小于给定索引值的元素:
$("div:lt(3)"):"选择索引值为小于 3 的 div 元素" -
:header匹配如 h1, h2, h3 之类的标题元素:
$(":header"):"选择所有的标题元素" -
:animated匹配所有正在执行动画效果的元素:
$(":animated"):"选择当前正在执行动画的所有元素"
$("div:not(:animated):last"):"选择没有执行动画的最后一个div"
2. 内容过滤器
-
:contains(text)匹配包含给定文本的元素:
$("div:contains('di')"):"选择 含有文本 'di' 的 div 元素" -
:empty匹配所有不包含子元素或者文本的空元素:
$("div:empty"):"选择不包含子元素(或者文本元素) 的 div 空元素" -
:parent匹配含有子元素或者文本的元素:
$("div:parent"):"选择含有 class 为 mini 元素的 div 元素" -
:has(selector)匹配含有选择器所匹配的元素的元素:
$("div:has(.mini)"):"选择含有子元素(或者文本元素)的div元素"
3. 属性过滤器
-
$("div[title]"):"选取含有 属性title 的div元素." id="btn1" style="disp -
$("div[title='test']"):"选取 属性title值等于'test'的div元素." -
$("div[title!='test']"):"选取 属性title值不等于'test'的div元素(没有属性title的也将被选中)." -
$("div[title^='te']"):"选取 属性title值 以'te'开始 的div元素." -
("div[title$='est']"):"选取 属性title值 以'est'结束 的div元素." -
$("div[title*='es']"):"选取 属性title值 含有'es'的div元素." -
$("div[id][title*='es']"):"组合属性选择器,首先选取有属性id的div元素,然后在结果中 选取属性title值 含有'es'的 div 元素." -
$("div[title][title!='test']"):"选取 含有 title 属性值, 且title 属性值不等于 test 的 div 元素."
4. 表单过滤器
-
对表单内 可用input 赋值操作
$(":text:enabled").val("New Value"); -
对表单内 不可用input 赋值操作
$(":text:disabled").val("New Value Too"); -
获取多选框选中的个数 使用size()方法获取选取到的元素集合的元素个数
alert($(":checkbox:checked").size()) -
获取多选框,每个选中的value值
var $checkboxs = $(":checkbox:checked");//创建checkbox选中对象
$checkboxs.each(function () {//each()遍历
alert(this.value);//this返回对象
}) -
获取下拉框选中的内容
var $select = $("select option:selected");//select是option的上一级,:selected判断选中
$select.each(function () {
alert(this.innerHTML);
})

浙公网安备 33010602011771号