将一个又一个丰富多彩的程序功能进行封装,供他人可以调用这些封装好的程序组件(框架)
jQuery是在可以JS中使用的,其作用是可以获取到页面中的一些元素,并对其进行操作。这些DOM对象也可以做到,可以将jQuery对象的一些型为视为是对DOM对象的操作的封装。两种对象用法互不相通,但对象之间可以进行转换。
优势:
- 轻量级:耦合度低
- 强大的选择器
- 出色的DOM操作封装
- 可靠的事件处理机制
- 出色的浏览器兼容性
jQuery对象:数组或集合
- 通过jQuery包装DOM后产生的对象
- jQuery对象是jQuery独有的
- jQuery对象无法使用DOM对象的任何方法,同样DOM对象也不能使用jQuery里的任何方法
- 约定:如果获取jQuery对象,那么要在变量前加$
绑定事件:
手动绑定事件:对象.bind("事件名",函数);
手动解绑事件:unbind("事件名");
jQuery和DOM对象的类型转换:
jQuery——>DOM:
$("#msg")[0]
$("#msg").get(0)
DOM——>jQuery
$()
例子:$(doucment.getElementById("msg"))
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="../../js/jquery-1.8.3.js" ></script>
<script>
function JSWrite(){//普通函数
//document.getElementById("span1").innerHTML="美美哒!";
var spanEle = document.getElementById("span1");
$(spanEle).html("美美哒!");
}
$(function(){//jQuery函数
/*document.getElementById("btn1").onclick = function(){
document.getElementById("span1").innerHTML="帅帅哒!";
}*/
$("#btn1").click(function(){
//JQ对象转换成DOM对象的第一种方式
//$("#span1")[0].innerHTML="呵呵哒!";
//JQ对象转换成DOM对象的第二种方式
$("#span1").get(0).innerHTML="呵呵哒!";
});
});
</script>
</head>
<body>
<input type="button" value="JS写入" onclick="JSWrite()"/>
<input type="button" value="JQ写入" id="btn1"/><br /><br />
<span id="span1">sssss</span>
</body>
</html>
注意:JQ对象只能操作JQ里面的属性和方法
JS对象只能操作JS里面的属性和方法。
jQuery选择器:
基本选择器:
选择器 | 描述 | 返回值 |
#id | 根据给定id匹配一个元素 | 单个元素组成的集合 |
.class | 根据给定的类名匹配元素 | 集合元素 |
element | 根据给定元素名匹配元素 | 集合元素 |
id选择器:$(“#id名称”);元素选择器:$(“元素名称”);类选择器:$(“.类名”);
通配符:* 多个选择器共用(并集)
<html>
<head>
<meta charset="UTF-8">
<title>基本选择器</title>
<link rel="stylesheet" href="../../css/style.css" type="text/css"/>
<script type="text/javascript" src="../../js/jquery-1.8.3.js" ></script>
<script>
$(function(){
$("#btn1").click(function(){
$("#one").css("background-color","pink");//元素选择器
});
$("#btn2").click(function(){
$(".mini").css("background-color","pink");//类选择器
});
$("#btn3").click(function(){
$("div").css("background-color","pink");//类型选择器
});
$("#btn4").click(function(){
$("*").css("background-color","pink");
});
$("#btn5").click(function(){
$("#two .mini").css("background-color","pink");//选择id为two并且样式为mini的元素
});
});
</script>
</head>
<body>
<input type="button" id="btn1" value="选择为one的元素"/>
<input type="button" id="btn2" value="选择样式为mini的元素"/>
<input type="button" id="btn3" value="选择所有的div元素"/>
<input type="button" id="btn4" value="选择所有元素"/>
<input type="button" id="btn5" value="选择id为two并且样式为mini的元素"/>
<hr/>
<div id="one">
<div class="mini">
111
</div>
</div>
<div id="two">
<div class="mini">
222
</div>
<div class="mini">
333
</div>
</div>
<div id="three">
<div class="mini">
444
</div>
<div class="mini">
555
</div>
<div class="mini">
666
</div>
</div>
<span id="four">
</span>
</body>
</html>
层次选择器:
选择器
$("ancestor descendant") | 选取ancestor的所有元素 | 集合元素 |
$("ancestor descendant"): | 选取parent元素后所有的child元素 | |
$("parent > child"): | 选取parent元素后所有的直属child元素,何谓“直属”,也就是第一级的意思了 | |
$("prev + next"): | prev和next是两个同级别的元素. 选中在prev元素后面的next元素,注意事项:这两个标签必须紧跟着。中间不能有其他的标签。 | |
$("prev ~ siblings"): | 选择prev后面的根据siblings类型的元素。注:siblings是过滤器,获取所有的其后面的弟节点。 |
ancestor descendant: 在给定的祖先元素下匹配所有的后代元素(儿子、孙子、重孙子)
parent > child : 在给定的父元素下匹配所有的子元素(儿子)
prev + next: 匹配所有紧接在 prev 元素后的 next 元素(紧挨着的,同桌)
prev ~ siblings: 匹配 prev 元素之后的所有 siblings 元素(兄弟)
<html>
<head>
<meta charset="UTF-8">
<title>层级选择器</title>
<link rel="stylesheet" href="../../css/style.css" />
<script type="text/javascript" src="../../js/jquery-1.8.3.js" ></script>
<script>
$(function(){
$("#btn1").click(function(){
$("body div").css("background-color","pink");
});
$("#btn2").click(function(){
$("body>div").css("background-color","pink");
});
$("#btn3").click(function(){
$("#two+div").css("background-color","pink");
});
$("#btn4").click(function(){
$("#one~div").css("background-color","pink");
});
});
</script>
</head>
<body>
<input type="button" id="btn1" value="选择body中的所有的div元素"/>
<input type="button" id="btn2" value="选择body中的第一级的孩子"/>
<input type="button" id="btn3" value="选择id为two的元素的下一个元素"/>
<input type="button" id="btn4" value="选择id为one的所有的兄弟元素"/>
<hr/>
<div id="one">
<div class="mini">
111
</div>
</div>
<div id="two">
<div class="mini">
222
</div>
<div class="mini">
333
</div>
</div>
<div id="three">
<div class="mini">
444
</div>
<div class="mini">
555
</div>
<div class="mini">
666
</div>
</div>
<span id="four">
</span>
</body>
</html>
过滤选择器:
基本过滤选择器:
(1)Jquery中简单过滤选择器
jquery根据某一类过滤规则进行元素匹配,书写时以:开头,是Jquery中应用最为广泛的选择器
(2)简单过滤选择器的基本语法
格式 | 含义 | 返回 |
first()或者:first | 获取第一个元素 | 单个元素组成的集合 |
last()或者:last | 获取最后一个元素 | 集合元素 |
:not(selector) | 获取除了给定选择器的其他元素 | 集合元素 |
:even | 获取索引为偶数的元素,索引从0开始 | 集合元素 |
:odd | 获取索引为奇数的元素,索引从0开始 | 集合元素 |
:eq(index) | 获取指定索引元素,从0开始 | 集合元素★ |
:gt(index) | 获取大于给定索引的元素,从0开始 | 集合元素 |
:lt(index) | 获取小于给定索引的元素,从0开始 | 集合元素 |
内容过滤选择器
$('li').first() 等价于:$(“li:first”)
格式 | 作用 | 返回 |
:contains(text) | 选取内容含有text的 | 集合元素 |
:parent | 获取到有子元素或者文本内容的节点 | 集合元素 |
父:has(子) | 获取到有某子元素类型的父结点 | 集合元素 |
:empty | 获取所有不含子标签或html内容为空的元素 | 集合元素 |
.html() 得到内容
可见性过滤选择器:
过滤器名 | jQuery 语法 | 说明 | 返回 |
:hidden | $(':hidden') | 选取所有不可见元素 | 集合元素 |
:visible | $(':visible') | 选取所有可见元素 | 集合元素 |
:hidden 对象有一个show方法 其作用是将隐藏的显示出来 无参数情况下为立即显示 有参数以毫秒为单位显示 :visible 对象有一个hide方法 其作用是将显示的隐藏出来 无参数情况下为立即显示 有参数以毫秒为单位显示
.toggle()方法:将显示的隐藏,将隐藏的显示。重载方式与show和hide相同。
<html>
<head>
<meta charset="UTF-8">
<title>基本过滤选择器</title>
<link rel="stylesheet" href="../../css/style.css" type="text/css"/>
<script type="text/javascript" src="../../js/jquery-1.8.3.js" ></script>
<script>
$(function(){
$("#btn1").click(function(){
$("div:first").css("background-color","pink");
});
$("#btn2").click(function(){
$("div:last").css("background-color","pink");
});
$("#btn3").click(function(){
$("div:odd").css("background-color","pink");
});
$("#btn4").click(function(){
$("div:even").css("background-color","pink");
});
});
</script>
</head>
<body>
<input type="button" id="btn1" value="body中的第一个div元素"/>
<input type="button" id="btn2" value="body中的最后一个div元素"/>
<input type="button" id="btn3" value="选择body中的奇数的div"/>
<input type="button" id="btn4" value="选择body中的偶数的div"/>
<hr/>
<div id="one">
<div class="mini">
111
</div>
</div>
<div id="two">
<div class="mini">
222
</div>
<div class="mini">
333
</div>
</div>
<div id="three">
<div class="mini">
444
</div>
<div class="mini">
555
</div>
<div class="mini">
666
</div>
</div>
<span id="four">
</span>
</body>
</html>
属性值选择器:attribute: 一个属性名 value: 一个属性值
$("[attribute|='value']") | 选择指定属性值等于给定字符串或改字符串为前缀(该字符串后跟一个连字符“-”)的元素。 |
$("[attribute*='value']") | 选择指定属性具有包含一个给定的子字符串的元素。(选择给定的属性是以包含某些值的元素) |
$("[attribute~='value']") | 选着指定属性用空格分隔的值中包含一个给定的元素。 |
$("[attribute$='value']") | 选择指定属性是以给定元素结尾的元素。这个元素比较是区分大小写的。 |
$("[attribute='value']") | 选择指定属性是给定值的元素。 |
$("[attribute!='value']") | 选择指定属性不等于这个值的元素 |
$("[attribute^='value']") | 选择指定属性就是以给定字符串开始的元素。 |
$("[attribute]") | 选择所有具有指定属性的元素,该属性可以是任何值。 |
<html>
<head>
<meta charset="UTF-8">
<title>层级选择器</title>
<link rel="stylesheet" href="../../css/style.css" type="text/css"/>
<script type="text/javascript" src="../../js/jquery-1.8.3.js" ></script>
<script>
$(function(){
$("#btn1").click(function(){
$("div[id]").css("background-color","pink");
});
$("#btn2").click(function(){
$("div[id='two']").css("background-color","pink");
});
});
</script>
</head>
<body>
<input type="button" id="btn1" value="选择有id属性的div"/>
<input type="button" id="btn2" value="选择有id属性的值为two的div"/>
<hr/>
<div id="one">
<div class="mini">
111
</div>
</div>
<div id="two">
<div class="mini">
222
</div>
<div class="mini">
333
</div>
</div>
<div id="three">
<div class="mini">
444
</div>
<div class="mini">
555
</div>
<div class="mini">
666
</div>
</div>
<span id="four">
</span>
</body>
</html>
表单选择器
<html>
<head>
<meta charset="UTF-8">
<title>表单选择器</title>
<link rel="stylesheet" type="text/css" href="../../css/style.css"/>
<script type="text/javascript" src="../../js/jquery-1.8.3.js" ></script>
<script>
$(function(){
$("#btn1").click(function(){
$(":input").css("background-color","pink");
});
$("#btn2").click(function(){
$(":text").css("background-color","pink");
});
});
</script>
</head>
<body>
<input type="button" id="btn1" value="选择所有input元素" />
<input type="button" id="btn2" value="选择文本框" />
<br/>
<form>
<input type="text[还可以使用属性选择]" /><br />
<input type="checkbox" /><br />
<input type="radio" /><br />
<input type="image" /><br />
<input type="file" /><br />
<input type="submit" />
<input type="reset" /><br />
<input type="password" /><br />
<input type="button" /><br />
<select><option/></select><br />
<textarea></textarea><br />
<button></button>
</form>
</body>
</html>
jQuery中获取,设置属性的方法:
- text() - 设置或返回所选元素的文本内容
- html() - 设置或返回所选元素的内容(包括 HTML 标记),获取到的是标签对之间的值。
- val() - 设置或返回表单字段的值,获取到的是value属性。
- attr() 方法也用于设置/改变属性值。
下面的例子演示如何通过 text()、html() 以及 val()attr() 方法来设置内容:
//获取
var 1=$("#test1").text();//只会获取文本内容
var 2=$("#test2").html();//会将html标签同时获取到
//设置
$("#test1").text("Hello world!");//只会设置文本内容,若为一个html标签,则会将其按照文本显示出来
$("#test2").html("<b>Hello world!</b>");//若为html标签则会给获取到的节点添加一个子节点
$("#test3").val("Dolly Duck");
$("#w3s").attr("href","http://www.hanghang.com");
var $obj1=$("div:empty");
//向节点中添加或获取元素
//添加内容
$obj1.html("空间添加节点");
//for-each循环
var $list=$(":checked");
集合.each(function,(i,element){//其对象为DOM对象
});
jQuery
查询:
.siblings() 获取相邻节点
.prev() 获取上一个兄节点
.prevAll() 获取所有兄节点
.
动态效果:
常用案例:
1.