目录
原生JS获取元素方式很多,很杂,而且兼容性情况不一致,因此jQuery给我们做了封装,使获取元素统一标准。
$("选择器") //里面直接写CSS选择器即可,但是要加引号
jQuery选择器
基本选择器:
名称 用法 描述
ID选择器 $('#id') 获取指定ID的元素
全选选择器 $('*') 匹配所有元素
类选择器 $(".class") 获取同一类class的元素
标签选择器 $("div") 获取同一类标签的所有元素
并集选择器 $("div,p,li") 选取多个元素
交集选择器 $("li.current")交集元素
层级选择器:
子代选择器 $("ul>li") 使用>号,获取亲儿子层级的元素;注意,并不会获取孙子层级的元素
后代选择器 $("ul li") 使用空格,代表后代选择器,获取ul下的所有li元素,包括孙子等
筛选选择器
:first $("li:first") 获取第一个li元素
:last $("li:last") 获取最后一个元素
eq(index) $("li:eq(2)") 获取到的li元素中,选择索引号为2的元素,索引号index从0开始
:odd $("li:odd") 获取到的li元素中,选择索引号为奇数的元素
:even $("li:even") 获取到的li元素中,选择索引号为偶数的元素
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="jquery-3.5.1.min.js"></script>
</head>
<body>
<div>今天心情很不好</div>
<div>今天心情很不好</div>
<div>今天心情很不好</div>
<div>今天心情很不好</div>
<ul>
<li>藏起来</li>
<li>藏起来</li>
<li>藏起来</li>
</ul>
</body>
<script>
$("li:first").css("color","red");
$("li:last").css("color","yellow");
$("li:eq(1)").css("color","orange");
</script>
</html>
jQuery隐式迭代
隐式迭代(重要!!!)
遍历内部DOM元素(伪数组形式存储)的过程就叫做隐式迭代。
隐式迭代就是把匹配的所有元素内部进行遍历循环,给每一个元素添加css这个方法
简单理解:给匹配到的所有元素进行循环遍历,执行相应的方法,而不用我们再进行循环,简化我们的操作,方便我们调用。
jQuery筛选方法
jQuery筛选方法(重点)
parent() $("li").parent(); 查找父级
children(selector) $("ul").children("li") 相当于$("ul>li"),最近一级(亲儿子)
find(selector) $("ul").find("li"); 相当于$("ul li"),后代选择器
siblings(selector) $(".first").siblings("li"); 查找兄弟节点,不包括自己本身
nextAll([expr]) $(".first").nextAll() 查找当前元素之后所有的同辈元素
prevtAll([expr]) $(".last").prevAll() 查找当前元素之前所有的同辈元素
hasClass(class) $("div").hasClass("protected") 检查当前的元素是否含有某个特定的类, 如果有,则返回true
eq(index) $("li").eq(2); 相当于$("li:eq(2)"),index从0开始
jQuery链式编程
为了节省代码量,看起来更优雅。
jQuery样式操作
添加类 addClass() 👆
删除类removeClass() ,添加删除之后恢复原样 👆
点击切换按钮先进行添加类的样式操作,再点击一次切换按钮进行删除类操作恢复原样 👆
jQuery类操作和className区别:
原生js中className会覆盖元素原先里面的类名,
jQuery里面的类操作只是对指定类进行操作,不影响原先的类名