jQuery介绍
是一个轻量级的js框架/库,其宗旨是write less do more。
jQuery对象
js的对象叫做dom对象
使用jQuery框架产生的对象是jQuery对象,是对dom对象的包装。jQuery下的对象方法和dom对象方法不能混用,只能各用个的。
约定:如果获取的是 jQuery 对象, 那么要在变量前面加上$
//基本语法
$(selector).action() //即选择器选择生成对象,对象调用方法
jQuery中文手册:http://jquery.cuishifeng.cn/
对象转换
var $variable = jQuery 对象
var variable = DOM 对象
$variable[0] jquery对象按索引取出来的是dom对象,如:
$("#msg").html()
$("#msg")[0].innerHTML
查找操作对象
* 选择器*
查找要操作的标签,生成jquery对象
* 基本选择器*
$("*")
$("#id")
$(".class")
$("element")
$(".class,p,div")
基本选择器示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p id="p1">PPP</p>
<div class="c1">DIV</div>
<div class="c1">DIV</div>
<div class="c1">DIV</div>
<span class="d1">SPAN</span>
<span class="c2">SPAN</span>
<a href="">AAAA</a>
<script src="jquery-3.2.1.js"></script> //导入jquery文件
<script>
// 基本选择器
$("#p1").css("color","red") //按照id选择
$(".d1").css({"color":"green","fontSize":"50px"}) //按照class选择
$("div").css({"color":"yellow","fontSize":"35px"}) //按照标签名div选择
//$("*").css({"color":"blue","fontSize":"30px"}) //body下的所有标签
$(".c2,a").css({"color":"gray","fontSize":"30px"}) //多个条件用空格隔开
</script>
</body>
</html>
基本选择器示例
注意,获取的jquery对象是一个集合,jquery对象在做方法调用进行属性操作的时候,会把集合里的所有元素都循环一次执行
层级选择器
$(".outer div") //后代
$(".outer>div") //子代
$(".outer+div") //毗邻
$(".outer~div") //普通兄弟
同css组合选择器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p>p6</p>
<div class="outer">
<div class="inner">
<p>p3</p>
<div>DIV</div>
</div>
<p>p2</p>
</div>
<p>p1</p>
<p>p4</p>
<script src="../2017.8.14/jquery-3.2.1.js"></script>
<script>
$(".outer p").css("color","red") //后代
//$(".outer>p").css("color","red") //子代
//$(".outer+p").css("color","red") //毗邻
//$(".outer~p").css("color","red") //普通兄弟,向下不向上
</script>
</body>
</html>
层级选择器示例
* 属性选择器*
$('[id]') //属性名
$('[id="div1"]') //一整条属性
$('["bob="man"][id]') //多条属性
属性选择器示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div bob="man">bob1</div>
<div bob="man" class="c1">bob2</div>
<div bob="man2">bob3</div>
<script src="../2017.8.14/jquery-3.2.1.js"></script>
<script>
// ==================属性选择器
$("[bob]").css("color","red")
// $("[bob='man']").css("color","red")
// $("[bob='man'][class]").css("color","red")
</script>
</body>
</html>
属性选择器示例
* 表单选择器*
只针对input表单,按照类型选择
$("[type='text']")
$(":text") //简写
$("input:checked").hide(); //hide()方法,隐藏元素
//以上选择器只适用于input标签,input:checked只能用于单选框和复选框
表单选择器示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<input type="text">
<input type="text">
<input type="text" >
<input type="checkbox" checked="checked">
<script src="../2017.8.14/jquery-3.2.1.js"></script>
<script>
// 针对input表单
$("[type='text']").css("border","1px solid red");
$("input:checked").hide();
//$(":text").css("border","1px solid green");
</script>
</body>
</html>
表单选择器示例
筛选器
* 基本筛选器*
$("li:first") //按索引取第一个
$("li:eq(2)") //按索引取第三个
$("li:even") //取偶数
$("li:odd") //取偶数
$("li:gt(1)") //大于索引1,也有lt小于
基本筛选器示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul class="box">
<li class="item">111</li>
<li class="item">222</li>
<li class="item">333</li>
<li class="item">444</li>
<li class="item">555</li>
<li class="item">666</li>
</ul>
<script src="../2017.8.14/jquery-3.2.1.js"></script>
<script>
// $("li:first").css("color","red");
// $("li:odd").css("color","red");
// $("li:even").css("color","red");
// $("li:eq(3)").css("color","red");
// $("li:gt(1)").css("color","red");
$("li:gt(1):lt(3)").css("color","red"); //链式语法,前面的大于1的结果然后在结果上再小于3
</script>
</body>
</html>
基本删选器示例
* 过滤筛选器*
推荐的筛选器写法,可用于传变量
$("li").eq(2)
$("li").first()
$("ul li").hasClass("test") //判断是否存在class为test的元素
过滤删选器示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul class="box">
<li class="item">111</li>
<li class="item">222</li>
<li class="item">333</li>
<li class="item">444</li>
<li class="item">555</li>
<li class="item">666</li>
</ul>
<script src="../2017.8.14/jquery-3.2.1.js"></script>
<script>
var $x=3
$("ul li").eq($x).css("color","red");
console.log($("ul li").hasClass('item'));
</script>
</body>
</html>
过滤删选器示例
* 查找筛选器*
//查找子标签:
$("div").children(".test")
$("div").find(".test")
//向下查找兄弟标签:
$(".test").next()
$(".test").nextAll()
$(".test").nextUntil()
//向上查找兄弟标签:
$("div").prev()
$("div").prevAll()
$("div").prevUntil()
//查找所有兄弟标签:
$("div").siblings()
//查找父标签:
$(".test").parent()
$(".test").parents()
$(".test").parentUntil()
操作元素(属性、css、文档处理)
事件
* 事件绑定*
jquery_obj集合.事件(function(){})
事件绑定示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul id="box">
<li class="item">111</li>
<li class="item">222</li>
<li class="item">333</li>
<li class="item">444</li>
<li class="item">555</li>
</ul>
<script src="../2017.8.14/jquery-3.2.1.js"></script>
<script>
$(".item").click(function () {
alert($(this).index())
});
</script>
</body>
</html>
事件绑定示例
* 事件委派*
在原有标签基础上,后边添加的标签,继承原有标签的事件
jquery_obj集合.on(事件,[selector],[data],function)
事件委派示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul id="box">
<li class="item">111</li>
<li class="item">222</li>
<li class="item">333</li>
<li class="item">444</li>
<li class="item">555</li>
</ul>
<button class="add">ADD</button>
<script src="../2017.8.14/jquery-3.2.1.js"></script>
<script>
$(".item").click(function () {
alert($(this).index())
});
// on方法
$("#box").on("click",".item",function () {
// alert($(this).html());
alert($(this).index());
});
//添加一个标签,点击该标签显示索引
$(".add").click(function () {
$("#box").append("<div class='item'>666</div>")
});
</script>
</body>
</html>
事件委派示例
事件委派清除
清除标签绑定的事件
语法
jquery_obj集合.off(事件)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul id="box">
<li class="item">111</li>
<li class="item">222</li>
<li class="item">333</li>
<li class="item">444</li>
<li class="item">555</li>
</ul>
<button class="add">ADD</button>
<button class="releave">off</button>
<script src="../2017.8.14/jquery-3.2.1.js"></script>
<script>
$("#box").on("click",".item",function () {
alert($(this).index());
});
$(".add").click(function () {
$("#box").append("<div class='item'>666</div>")
});
$(".releave").click(function () {
//绑定给那个对象就解除哪个对象的事件委派
$("#box").off("click")
});
</script>
</body>
</html>
事件委派清除
* 事件切换*
hover事件
一个模仿悬停事件(鼠标移动到一个对象上面及移出这个对象)的方法。这是一个自定义的方法,它为频繁使用的任务提供了一种“保持在其中”的状态。
over:鼠标移到元素上要触发的函数
out:鼠标移出元素要触发的函数
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
*{
margin: 0;
padding: 0;
}
.test{
width: 200px;
height: 200px;
background-color: wheat;
}
</style>
</head>
<body>
<div class="test"></div>
<script src="../2017.8.14/jquery-3.2.1.js"></script>
<script>
function enter(){
alert("enter")
}
function out(){
alert("out")
}
$(".test").hover(enter,out)
// $(".test").mouseenter(function(){
// alert("enter")
// });
// $(".test").mouseleave(function(){
// alert("leave")
// });
</script>
</body>
</html>
hover示例