1、jquery对象,下面两个是一样的,都是jquery对象,我们学习jquery就是学习jquery对象的属性和方法
jquery
$
2、基本语法:先找到标签,然后对这个标签做操作
jquery(selector).action() == $(selector).action()
3、寻找标签
3_1、选择器
基本选择器
通配符:查找所有的标签
$("*").css("color","red");
标签名:查找指定的标签名字
$("div").css("color","red");
id:通过id查找标签
$("#p1").css("color","blue");
class:通过class查找标签
$(".h1").css("color","red");
并列选择;通过逗号隔开上面的几种选择器
$(".h1,#p1,div").css("color","yellow");
层级选择器
后代选择器:通过空格隔开上面的几种基本选择器
$(".h1 #p1").css("color","yellow");
子代选择器:通过>隔开上面的几种基本选择器
$(".h1>#p1").css("color","yellow");
毗邻选择器:通过+号隔开上面的几种基本选择器,选择的下一个紧挨着的元素
$(".h1+#p1").css("color","yellow");
兄弟选择器:用~号隔开上面的几种基本选择器,选择是下一个兄弟选择器,不用紧挨着
$(".h1~#p1").css("color","yellow");
基本帅选器
first:选择器第一个标签
$("div li:first").css("color","red")
eq:选择指定的标签
$("div li:eq(2)").css("color","red")
last:选择最后一个标签
$("div li:last").css("color","red")
even:选择序列为偶数的标签
$("div li:even").css("color","red")
gt:选择序列大于某个值的标签
$("div li:gt(2)").css("color","red")
lt:选择序列大于某个值的标签
$("div li:lt(2)").css("color","red")
属性选择器
通过属性名称选择
$("[alex]").css("color","red")
通过属性名称和属性的值选择
$("[alex='sb']").css("color","red")
表单选择器:只对input标签生效,通过冒号来选择input的类型,下面的例子是帅选出type的类型为text标签
$(":text").css("width","800px")
3_2、帅选器:作用就是通过上面的选择器可以选中一个标签或者多个标签,如果选择了多个标签,那么我们就需要通过帅选器去选择我们想要的标签
过滤筛选器:
$("li").eq(2)
$("li").first()
$("li").last()
$("li").hasclass("div")
查找筛选器
children:只找儿子这一级的标签
$("div").children("#test3").css("color","red")
find:找所有的后代标签,包括儿子,孙子。。。。。
$("div").find("#test3").css("color","red")
next:指定标签的下一个标签
nextAll:指定标签的下面所有的标签
nextUntil:区间筛选器,找指定标签下面的兄弟标签,直到某个标签截止,但是不包括这个标签
$("div").nextUntil("#test3").css("color","red")
prev:找指定标签上面的一个标签
prevAll:找指定标签上面的所有的标签
prevUntil:区间筛选器,找指定标签上面的兄弟标签,直到某个标签截止,但是不包括这个标签
parent:找指定标签的父标签
parents:找父标签,父标签的父标签,父标签的父标签的父标签,一直往上找
parentsUntil:找父标签,父标签的父标签,父标签的父标签的父标签,一直往上找,直到某个标签截止
siblings:找兄弟标签,包括上面和下面的兄弟标签
$("div").siblings().css("color","red")
$("div").siblings("h1").css("color","red")
4、操作标签
attr:获取或者操作某个标签的属性
alert($("input").attr("type"));
获取某个属性的值
$("input").attr("type","radio");
设置某个属性的值
alert($("input").attr("type"));
打印某个属性的值
removeAttr:移除某个属性的值
$("body").children().eq(1).removeAttr("value")
prop和attr用法一致,prop一般用自由属性,attr一般用于自定义属性
removeProp和removeAttr的用法一致
看一个正选反选的例子
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jquery实现正选和反选</title>
<script src="jquery-3.3.1.js"></script>
<style>
.xxx{
display: block;
}
table{
padding: 10px;
}
</style>
</head>
<body>
<table border="1">
<caption>正选和反选测试</caption>
<thead>
<tr>
<th>属性</th>
<th>属性值</th>
<th>是否选择</th>
</tr>
</thead>
<tbody>
<tr>
<td>国籍</td>
<td>中国</td>
<td>
<input type="checkbox">
</td>
</tr>
<tr>
<td>民族</td>
<td>汉</td>
<td>
<input type="checkbox">
</td>
</tr>
<tr>
<td>年龄</td>
<td>20</td>
<td>
<input type="checkbox">
</td>
</tr>
<tr>
<td>外甥</td>
<td>周雍博</td>
<td>
<input type="checkbox">
</td>
</tr>
<tr>
<td>儿子</td>
<td>崔皓然</td>
<td>
<input type="checkbox">
</td>
</tr>
</tbody>
</table>
<div class="xxx">
全选:<input type="button" value="全选" onclick="select_all()">
</div>
<div class="xxx">
反选:<input type="button" value="反选" onclick="delete_all()">
</div>
<div class="xxx">
反选:<input type="button" value="取消" onclick="cancel_all()">
</div>
<script>
function select_all() {
$("tbody").find("input").each(
function () {
$(this).attr("checked","checked")
}
)
}
function delete_all() {
$("tbody").find("input").each(
function () {
var select_y_n = $(this).attr("checked")
// alert(select_y_n)
if (select_y_n == "checked"){
$(this).removeAttr("checked")
}else {
$(this).attr("checked","checked")
}
}
)
}
function cancel_all() {
$("tbody").find("input").each(
function () {
$(this).removeAttr("checked")
})
}
</script>
</body>
</html>
5、Jquery的for循环
方式1
li = ["a","b","c"];
$.each(li,function (i,x) {
console.log(i,x)
})
dic = {name:"hahh",age:"xxx"}
$.each(dic,function (i,x) {
console.log(i,x)
})
方式2
先通过jquery来选择标签,然后在通过each来对选择出来的每个标签做处理,然后this这个关键词就是循环的每个元素
$("ul li").each(function () {
this.innerText = "xxxxx"
})
6、文档处理
内部插入
// $("#div1").append($("#p2"))
// 在id为div1的标签内部的最后面插入一个id为p2的标签
// $("#p2").appendTo($("#div1"))
// 把id为p2的标签插入到id为div1的标签的内部的最后面
// $("#div1").prepend($("#p2"))
// 在id为div1的标签内部的最前面插入一个id为p2的标签
// $("#p2").prependTo($("#div1"))
// 在id为div1的标签内部的最前面插入一个id为p2的标签
外部插入
// $("#div1").after($("#p3"))
// 在id为div1的标签的后面插入一个id为p3的标签
insertAfter
// $("#div1").before($("#p3"))
// 在id为div1的标签的上面插入一个di为p3的标签
insertBefore\
7、clone操作;clone、remove、empty、val、attr
看一个例子
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jquery_clone</title>
<script src="jquery-3.3.1.js"></script>
</head>
<body>
<div id="outer">
<div class="item">
<input type="button" value="+" onclick="func_clone(this)">
<input type="text">
</div>
</div>
<script>
function func_clone(self) {
var clone_ele = $(self).parent().clone();
clone_ele.children(":button").val("-");
clone_ele.children(":button").attr("onclick","func2(this)");
$("#outer").append(clone_ele)
}
function func2(self) {
$(self).parent().remove();
// empty:就要清空标签,只是清空内部的数据
// remove:就是删除整个标签
// 删除标签
}
</script>
</body>
</html>