目录
一、jQuery基础选择器
原生JS获取元素方式很多,很杂,而且兼容性情况不一致,因此jQuery给我们做了封装,使获取元素统一标准。
$("选择器")//里面选择器直接写CSS选择器即可,但是要加引号
名称 | 用法 | 描述 |
ID选择器 | $(""#id") | 获取指定ID的元素 |
全选选择器 | $('*') | 匹配所有元素 |
类选择器 | $(".class") | 获取同一类class的元素 |
标签选择器 | $(""div") | 获取同一类标签的所有元素 |
并集选择器 | $("div,p,li") | 选取多个元素 |
交集选择器 | $("li.current") | 交集元素 |
1、 标签选择器
<body>
<div>123</div>
<button>点击一下</button>
<script>
$(function(){
$("button").click(function(){
$("div").css("color","red");
});
});
</script>
</body>
2、类选择器
<head>
<meta charset="utf-8">
<title>编写第一个jQuery程序</title>
<script src="../jquery/jQuery-3.6.1.min.js"></script>
<style>
.div{
width: 50px;
height: 50px;
background-color: wheat;
}
</style>
</head>
<body>
<div class="div">123</div>
<button class="button">点击一下</button>
<script>
$(function(){
$(".button").click(function(){
$(".div").css("background-color","black");
$(".div").css("color","#fff")
});
});
</script>
</body>
3、ID选择器
<body>
<div class="div" id="div">123</div>
<button class="button" id="button">点击一下</button>
<script>
$(function(){
$("#button").click(function(){
$("#div").css("background-color","gray");
$("#div").css("color","#fff")
});
});
</script>
</body>
4、并集选择器
<body>
<div class="div" id="div">123</div>
<p id="p">123</p>
<button id="button">点击一下</button>
<script>
$(function(){
$("#button").click(function(){
$(".div,#p,#button").css("background-color","gray")
});
});
</script>
</body>
5、交集选择器
<body>
<div id="test" class="test">123</div>
<p class=""></p>
<p class="test"></p>
<span class="no"></span>
</body>
<script>
console.log($("p.test"));
</script>
二、层次选择器
层次选择器通过DOM 元素之间的层次关系来获取元素
名称 | 语法 | 描述 | 示例 |
后代选择器 | ancestor descendant | 选取ancestor元素里的所有descendant(后代)元素 | $("#menu span" )选取#menu下的<span>元素 |
子选择器 | parent>child | 选取parent元素下的child(子)元素 | $(" #menu>span" )选取#menu的子元素<span> |
相邻元素选择器 | prev+next | 选取紧邻prev元素之后的next元素 | $(" h2+dl " )选取紧邻<h2>元素之后的同辈元素<dl> |
同辈元素选择器 | prev~sibings | 选取prev元素之后的所有siblings元素 | $(" h2~dl " )选取<h2>元素之后所有的同辈元素<dl> |
1、后代选择器
<body>
<div>
<p>
123
<span>123</span>
</p>
<p>
123
<span>123</span>
</p>
</div>
</body>
<script>
$(function(){
$("div p").css("color","red");
});
</script>
2、子选择器
<body>
<div>
<p>
<a href="">123</a>
<span>123</span>
</p>
<p>
<a href="">123</a>
<span>123</span>
</p>
</div>
</body>
<script>
$(function(){
$("p>a").css("color","red");
});
</script>
3、相邻元素选择器
<body>
<ol>
<p>123</p>
<li>123</li>
<li>123</li>
<li>123</li>
</ol>
</body>
<script>
$(function(){
$("p+li").css("color","red");
});
</script>
4、同辈元素选择器
<body>
<ol>
<p>123</p>
<li>123</li>
<li>123</li>
<li>123</li>
</ol>
</body>
<script>
$(function(){
$("p~li").css("color","red");
});
</script>
5、属性选择器
语法构成 | 秒数 | 示例 |
[attribute] | 选取包含给定属性的元素 | $(" [href]" )选取含有href属性的元素 |
[attribute=value] | 选取等于给定属性是某个特定值的元素 | $(" [href ='#']" )选取href属性值为“#”的元素 |
[attribute !=value] | 选取不等于给定属性是某个特定值的元素 | $(" [href !='#']" )选取href属性值不为“#”的元素 |
[attribute^=value] | 选取给定属性是以某些特定值开始的元素 | $(" [href^='en']" )选取href属性值以en开头的元素 |
[attribute$=value] | 选取给定属性是以某些特定值结尾的元素 | $(" [href$='.jpg']" )选取href属性值以.jpg结尾的元素 |
[attribute*=value] | 选取给定属性是以包含某些值的元素 | $(" [href* ='txt']" )选取href属性值中含有txt的元素 |
根据属性名获取元素:
<body>
<section id="news">
<header>京东快报<a href="#" class="more">更多 > </a></header>
<ul>
<li><a href="sale.jd.com/act/h7mf8.html" class="hot"><span>[618]</span>志玲姐姐:墨镜300减30</a></li>
<li><a href="www.jd.com/news.aspx?id=29257"><span>[公告]</span>京东无锡馆正式启动</a></li>
<li><a href="sale.jd.com/act/k2ad45v.html"><span>[特惠]</span>99元抢平板!品牌配件199-100</a></li>
<li><a href="www.jd.com/news.aspx?id=29252"><span>[公告]</span>节能领跑京东先行</a></li>
<li><a href="sale.jd.com/act/ugk2937w.html" class="last"><span>[特惠]</span>高洁丝实力撩货,领券五折</a></li>
</ul>
</section>
<script type="text/javascript" src="js/jquery-1.12.4.js"></script>
<script>
$(function(){
$("a[href]").css("background-color","grey")
})
</script>
</body>
根据属性值获取元素
<script>
$(function(){
$("a[class = 'hot']").css("background-color","grey")
})
</script>
根据属性值包含特定的值获取元素:以指定值开头的元素
<script>
$(function(){
$("a[href^='www']").css("background-color","grey")
})
</script>
以指定值结尾的元素
<script>
$(function(){
$("a[href$='html']").css("background-color","grey")
})
</script>
包含指定值的元素
<script>
$(function(){
$("#news a[href*='k2']").css("background","#c9cbcb");
})
</script>
6、过滤选择器
语法 | 描述 | 示例 |
:first | 选取第一个元素 | $(" li:first" )选取所有<li>元素中的第一个<li>元素 |
:last | 选取最后一个元素 | $(" li:last" )选取所有<li>元素中的最后一个<li>元素 |
:not(selector) | 选取去除所有与给定选择器匹配的元素 | $(" li:not(.three)" )选取class不是three的元素 |
:even | 选取索引是偶数的所有元素(index从0开始) | $(" li:even" )选取索引是偶数的所有<li>元素 |
:odd | 选取索引是奇数的所有元素(index从0开始) | $(" li:odd" )选取索引是奇数的所有<li>元素 |
语法 | 描述 | 示例 |
:eq(index) | 选取索引等于index的元素(index从0开始) | $("li:eq(1)" )选取索引等于1的<li>元素 |
:gt(index) | 选取索引大于index的元素(index从0开始) | $(" li:gt(1)" )选取索引大于1的<li>元素(注:大于1,不包括1) |
:lt(index) | 选取索引小于index的元素(index从0开始) | $(“li:lt(1)” )选取索引小于1的<li>元素(注:小于1,不包括1) |
:header | 选取所有标题元素,如h1~h6 | $(":header" )选取网页中所有标题元素 |
:focus | 选取当前获取焦点的元素 | $(":focus" )选取当前获取焦点的元素 |
:animated | 选择所有动画 | $(":animated" )选取当前所有动画元素 |
<script>
$(function() {
$("ul li:first" ).css("color", "red");
$("ul li:eq(2)").css( "color", "blue");
$("ol li:odd" ).css("color" , "skyblue");
$(""ol li:even ").css("color", "pink");
});
</script>
7、jQuery筛选方法
语法 | 用法 | 说明 |
parent() | $("li").parent(); | 查找父级 |
children(selector) | $("ul").children("li") | 相当于$("ul>li"),最近一级(亲儿子) |
find(selector) | $("ul").find("li"); | 相当于$("ul li"),后代选择器 |
siblings(selector) | s(".first").siblings("li"); | 查找兄弟节点,不包括自己本身 |
nextAll([expr]) | s(".first" ). nextAll() | 查找当前元素之后所有的同辈元素 |
prevtAll([expr]) | s(".last").prevAll() | 查找当前元素之前所有的同辈元素 |
hasClass(class) | $('div').hasClass("protected") | 检查当前的元素是否含有某个特定的类,如果有,则返回true |
eq(index) | $("li").eq(2); | 相当于$("li:eq(2)"),index从0开始 |
查找父级 parent():
<body>
<div class="yeye">
<div class="baba">
<div class="son">儿子</div>
</div>
</div>
<div class="nav">
<p>123</p>
<div>
<p>456</p>
</div>
</div>
<script>
$(function(){
console.log($(".son").parent());
})
</script>
</body>
亲儿子children(selector)和后代find(selector)
//(1)亲儿子 children()类似子代选择器ul>li
$(".nav" ).children("p" ).css( "color", "red" );
// (2)可以选里面所有的孩子包括儿子和孙子find()类似于后代选择器
$(".nav").find("p").css( "color", "red" );
siblings(selector);eq(index);hasClass(class)
<script>
$(function(){
// 1.兄弟元素siblings除了自身元素之外的所有亲兄弟
$("ol .item").siblings("li").css("color","red");
// 2.第n个元素
var index = 2;
//(1)我们可以利用选择器的方式选择
//$("ul li:eq(2)").css( "color", "blue" );
// $("ul li:eq( "+index+")" ).css("color", "blue");
// (2)我们可以利用选择方法的方式选择更推荐这种写法
// $("ul li").eq(2).css( "color", "blue" );
$("ul li").eq(index).css("color","blue");
// 3.判断是否有某个类名
console.log($("div:first").hasClass("div"));
console.log($("div:last").hasClass("div"));
});
</script>