分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

jQuery(二):jQuery选择器

发布时间:2023-09-06 02:16责任编辑:蔡小小关键词:jQuery选择器

jQuery选择器类似于CSS选择器,用来选取网页中的元素。例如:

$("h3").css("background-color","red");

 说明:

  1. 获取并设置网页中所有<h3>元素的背景色。
  2. “h3”为选择器语法,必须放在$()中。
  3. $("h3")返回jQuery对象。

一、jQuery选择器

jQuery选择器功能强大,种类也很多,分类如下:

1、类CSS选择器

  1. 基本选择器
  2. 层次选择器
  3. 属性选择器

2、过滤选择器

  1. 基本过滤选择器
  2. 可见性过滤选择器

3、表单选择器

4、内容过滤器

二、基本选择器

基本选择器语法如下图所示:

示例:

<!DOCTYPE html><html lang="en"><head> ???<meta charset="UTF-8"> ???<meta name="viewport" content="width=device-width, initial-scale=1.0"> ???<meta http-equiv="X-UA-Compatible" content="ie=edge"> ???<title>jQuery基本选择器示例</title> ???<style> ??????#box{ ??????????background-color: #ffffff; ??????????border: 2px solid #000000; ??????????padding: 5px; ??????} ???</style> ???<script src="jquery-3.3.1.js"></script> ???<script> ???????$(function(){ ???????????// id选择器 ???????????$("#btn").click(function(){ ?????????????// 标签选择器 ?选择h3标签并将其添加背景颜色 ?????????????$("h3").css("background-color","red"); ?????????????// 类选择器 ?选取并设置所有class为title的元素的背景颜色 ?????????????$(".title").css("background-color","#09F"); ?????????????// id选择器 ?选取并设置id为box的元素的背景颜色 ?????????????$("#box").css("background-color","#09F"); ?????????????// 并集选择器 ?相当于css中的群组选择器 选取并设置所有的h2、dt、class为title ?????????????//的元素的背景色 ?????????????$("h2,dt,.title").css("background-color","#09A"); ?????????????// 交集选择器 等同于CSS中的指定标签选择器 选取并设置class为title的h3标签的背景色 ?????????????$("h3.title").css("background-color","yellow"); ?????????????// 全局选择器 改变所有元素的字体颜色 ?????????????$("*").css("color","blue"); ?????????}); ???????}); ????????</script></head><body> ???<input type="button" id="btn" value="显示效果" /> ???<div id="box" style="margin-top:10px;"> ????????id为box的div ????????<h2 class="title">class为title的h2标签</h2> ????????<h3 class="title">class为title的h3标签</h3> ????????<h3>热门排行</h3> ????????<dl> ????????????<dt><img src="qq.jpg" width="391" height="220" alt="斗地主" /></dt> ????????????<dd class="title">斗地主</dd> ????????????<dd>休闲游戏</dd> ????????????<dd>QQ斗地主是国内同时在线人数最多的棋牌游戏......</dd> ????????</dl> ???</div></body></html>

 效果:

三、层次选择器

 层次选择器通过DOM元素之间的层次关系来获取元素,语法如下:

请看下面的示例

需求说明:点击标题,使用层次选择器选择不同的元素使得其背景色为蓝色,如下图所示:

代码:

<!DOCTYPE html><html lang="en"><head> ???<meta charset="UTF-8"> ???<meta name="viewport" content="width=device-width, initial-scale=1.0"> ???<meta http-equiv="X-UA-Compatible" content="ie=edge"> ???<title>层次选择器演示示例</title> ???<!--css样式--> ???<style> ??????*{ ??????????margin: 0px; ??????????padding: 0px; ??????????line-height: 30px; ??????} ??????body{ ??????????margin: 10px; ??????} ??????#menu{ ??????????border: 2px solid #0033cc; ??????????padding: 10px; ??????} ??????a{ ??????????text-decoration: none; ??????????margin-right: 5px; ??????} ??????span{ ??????????font-weight: bold; ??????????padding: 3px; ??????} ??????h2{ ??????????margin: 10px; ??????????cursor: pointer;/*鼠标为手状*/ ??????} ???</style> ???<!--引入jQuery--> ???<script src="jquery-3.3.1.js"></script> ???<!--javascript--> ???<script> ?????????????$(function(){ ??????????// 点击h2标题时改变背景色 ??????????$("h2").click(function(){ ???????????????// 后代选择器 获取并设置#menu下的span元素的背景色 ???????????????$("#menu span").css("background-color","blue"); ???????????????// 子选择器 获取并设置#travel下的a元素的背景色 ???????????????$("#travel>a").css("background-color","red"); ???????????????// 相邻选择器 只会选择第一个相邻的元素 ???????????????//获取并设置#ticket下的第一个a元素的背景色 ???????????????$("#ticket+a").css("background-color","red"); ???????????????// 同辈选择器 会选择所有的元素 ???????????????//获取并设置#rest下的所有a元素的背景色 ???????????????$("#rest~a").css("background-color","yellow"); ??????????}); ??????}); ???</script></head><body> ???<div id="menu"> ???????<h2 title="点击查看效果">全部旅游产品分类</h2> ???????<dl> ???????????<dt>北京周边旅游<span>特价</span></dt> ???????????<dd id="travel"> ???????????????<a href="#">按天数</a> ???????????????<a href="#">海边旅游</a> ???????????????<a href="#">草原</a> ???????????</dd> ???????</dl> ???????<dl> ???????????<dt>景点门票</dt> ???????????<dd > ???????????????????<a href="#" id="ticket">名胜</a> ???????????????????<a href="#">暑期</a> ???????????????????<a href="#">乐园</a> ???????????</dd> ???????????<dd > ???????????????????<a href="#" id="rest">山水</a> ???????????????????<a href="#">双休</a> ???????????????????<a href="#">园林</a> ???????????</dd> ???????</dl> ???????<span>更多分类</span> ???</div> ??</body></html>

效果:

四、属性选择器

属性选择器通过HTML元素的属性来选择元素。语法如下:

示例:

<!DOCTYPE html><html lang="en"><head> ???<meta charset="UTF-8"> ???<meta name="viewport" content="width=device-width, initial-scale=1.0"> ???<meta http-equiv="X-UA-Compatible" content="ie=edge"> ???<title>属性选择器演示示例</title> ???<!--css样式--> ???<style> ?????#box{ ?????????background-color: #ffffff; ?????????border: 2px solid #000000; ?????????padding: 5px; ?????} ?????h2{ ?????????cursor: pointer; ?????} ???</style> ???<!--引入jQuery--> ???<!--引入jQuery--> ???<script src="jquery-3.3.1.js"></script> ???<!--javascript--> ???<script> ?????$(function(){ ???????????$("h2").click(function(){ ???????????????// 改变含有title属性的h2元素的背景颜色 ???????????????$("h2[title]").css("background-color","blue"); ???????????????// 改变含有class属性为odds元素的背景颜色 ???????????????$("[class=‘odds‘]").css("background-color","red"); ???????????????// 改变含有class属性不等于odds元素的字体颜色 ???????????????//$("[class!=odd]").css("color","green"); ???????????????// 改变含有title属性以h开头的元素的字体颜色 区分大小写 ???????????????$("[title^=h]").css("color","green"); ???????????????// 改变含有title属性以jp结尾的元素的字体颜色 区分大小写 ???????????????$("[title$=jp]").css("color","yellow"); ???????????????// 改变含有title属性中含有s的元素的字体颜色 区分大小写 ???????????????$("[title*=s]").css("color","pink"); ???????????????// 改变含有class属性并且title属性中含有y的li元素的字体颜色 区分大小写 ???????????????$("li[class][title*=y]").css("color","violet"); ???????????}); ?????}); ???</script></head><body class="odd"> ???<div id="box" class="odd"> ???????<h2 class="odd" title="cartoon-list">动画列表</h2> ???????<ul> ???????????<li class="odds" title="kn_jp">名侦探柯南</li> ???????????<li class="evens" title="hy_rz">火影忍者</li> ???????????<li class="odds" title="ss_JP">死神</li> ???????????<li class="evens" title="yj_jp">妖精的尾巴</li> ???????????<li class="odds" title="yh_jp">银魂</li> ???????????<li class="evens" title="Hm_dS">黑猫警长</li> ???????????<li class="odds" title="xl_ds">仙履奇缘</li> ???????</ul> ???</div></body></html>

效果:

五、过滤选择器

过滤选择器通过特定的过滤规则来刷选元素。

语法特点是使用“:”,例如:

 $("li:first")

表示选取第一个li元素。

1、基本过滤选择器

基本过滤选择器可以选择第一个元素、最后一个元素、索引为奇数或偶数的元素,语法如下:

 

基本过滤选择器还可以根据索引的值选取元素

基本过滤选择器还支持一些特殊的选择方式

示例:

<!DOCTYPE html><html lang="en"><head> ???<meta charset="UTF-8"> ???<meta name="viewport" content="width=device-width, initial-scale=1.0"> ???<meta http-equiv="X-UA-Compatible" content="ie=edge"> ???<title>基本过滤选择器</title> ???<style> ?????h2{ ?????????cursor: pointer; ?????} ???</style> ???<!--引入jQuery--> ???<script src="jquery-3.3.1.js"></script> ???<!--javascript--> ???<script> ???????$(function(){ ????????????$("h2").click(function(){ ???????????????// 选取第一个li标签并设置背景色 ???????????????//$("li:first").css("background-color","blue"); ???????????????// 选取第一个li标签并设置背景色 ???????????????//$("li:last").css("background-color","red"); ???????????????// 选取偶数行的li标签并设置背景色 ???????????????//$("li:even").css("background-color","green"); ???????????????// 选取奇数行的li标签并设置背景色 ???????????????//$("li:odd").css("background-color","pink"); ???????????????// 改变索引值为1的li标签的背景色 ???????????????//$("li:eq(1)").css("background-color","pink"); ???????????????// 改变索引值大于4的li标签的背景色 ???????????????//$("li:gt(4)").css("background-color","green"); ???????????????// 改变索引值小于4的li标签的背景色 ???????????????//$("li:lt(4)").css("background-color","red"); ???????????????// 选取class不是three的元素并设置背景色 ???????????????$("li:not(.three)").css("background-color","green"); ???????????????// 选取所有标题元素并设置背景色 ???????????????$(":header").css("background-color","red"); ????????????}); ????????????$("input[type=‘text‘]").click(function(){ ????????????????// 设置当前获取焦点的元素的背景色 ????????????????$(":focus").css("background-color","yellow"); ????????????}); ???????}); ???</script></head><body> ???<h2>网络小说</h2> ???<ul> ???????<li>王妃不好当</li> ???????<li>致命交易</li> ???????<li class="three">珈蓝寺</li> ???????<li>逆天至宠</li> ???????<li>交错时光的爱恋</li> ???????<li>张震讲鬼故事</li> ???????<li>第一次亲密接触</li> ???</ul> ???<input type="text" value="Hello World" /></body></html>

结果:

2、可见性过滤选择器

可见性过滤选择器可以通过元素的显示状态来选取元素,语法如下:

例如:

示例:

<!DOCTYPE html><html lang="en"><head> ???<meta charset="UTF-8"> ???<meta name="viewport" content="width=device-width, initial-scale=1.0"> ???<meta http-equiv="X-UA-Compatible" content="ie=edge"> ???<title>可见性元素选择器演示示例</title> ????<style> ???????p{ ???????????display: none; ???????} ????</style> ?????<!--引入jQuery--> ?????<script src="jquery-3.3.1.js"></script> ?????<!--javascript--> ?????<script> ?????????$(function(){ ?????????????$("#show").click(function(){ ?????????????????$("p:hidden").show(); ?????????????}); ?????????????$("#hidden").click(function(){ ?????????????????$("p:visible").hide(); ?????????????}); ?????????}); ?????</script></head><body> ????<input type="button" id="show" value="显示" /> ????<input type="button" id="hidden" value="隐藏" /> ????<p>嗨,您好!</p></body></html>

效果:

点击显示:

点击隐藏:

3、内容过滤器

内容过滤器根据内容来选取元素,语法如下:

示例:

<!DOCTYPE html><html lang="en"><head> ???<meta charset="UTF-8"> ???<meta name="viewport" content="width=device-width, initial-scale=1.0"> ???<meta http-equiv="X-UA-Compatible" content="ie=edge"> ???<title>内容过滤器演示示例</title> ???<style> ?????.title{ ?????????background-color: gray; ?????} ???</style> ???<!--引入jQuery--> ???<script src="jquery-3.3.1.js"></script> ???<!--javascript--> ???<script> ?????$(function(){ ???????????// 改变包含“运动鞋”的表格背景色设置为蓝色 ???????????$("td:contains(‘运动鞋‘)").css("background-color","blue"); ???????????// 没有内容的单元格的背景色设置为红色 ???????????$("td:empty").css("background-color","red"); ???????????// 包含链接的单元格的背景色设置为绿色 ???????????$("td:has(‘a‘)").css("background-color","green"); ???????????// 含有子节点或文本的表格的背景色设置为灰色 ???????????$("td:parent").css("background-color","gray"); ?????}); ???</script></head><body> ???<table> ???????<thead> ???????????<tr class="title"> ???????????????<th>序号</th> ???????????????<th>订单号</th> ???????????????<th>商品名称</th> ???????????????<th>价格(元)</th> ???????????</tr> ???????</thead> ???????<tbody> ???????????<tr> ???????????????<td>1</td> ???????????????<td>10035900</td> ???????????????<td><a href="#">Nike透气减震运动鞋</a></td> ???????????????<td>231.00</td> ???????????</tr> ???????????<tr> ???????????????<td>2</td> ???????????????<td>10036114</td> ???????????????<td>天美太阳伞</td> ???????????????<td>51.00</td> ???????????</tr> ???????????<tr> ???????????????<td>3</td> ???????????????<td>10035110</td> ???????????????<td><a href="#">万圣节儿童蜘蛛侠装</a></td> ???????????????<td>31.00</td> ???????????</tr> ???????????<tr> ???????????????<td>4</td> ???????????????<td>10035120</td> ???????????????<td>匹克篮球运动鞋</td> ???????????????<td>231.00</td> ???????????</tr> ???????????<tr> ???????????????<td>5</td> ???????????????<td>10032900</td> ???????????????<td>jQuery权威指南</td> ???????????????<td></td> ???????????</tr> ???????</tbody> ???</table></body></html>

效果:

六、表单选择器

表单选择器根据不同类型的表单元素进行选取,语法如下:

示例:

<!DOCTYPE html><html lang="en"><head> ???<meta charset="UTF-8"> ???<meta name="viewport" content="width=device-width, initial-scale=1.0"> ???<meta http-equiv="X-UA-Compatible" content="ie=edge"> ???<title>表单选择器演示示例</title> ?????<!--引入jQuery--> ?????<script src="jquery-3.3.1.js"></script> ?????<!--javascript--> ?????<script> ????????$(function(){ ????????????// 点击提交按钮,如果为空则设置边框为红色 ????????????$(":submit").click(function(){ ????????????????// 获取用户名 ????????????????var username= $(":input[name=‘username‘]"); ????????????????// 获取密码 ????????????????var pwd= $(":password[name=‘pwd‘]"); ????????????????// 获取确认密码 ????????????????var repwd= $(":password[name=‘repwd‘]"); ????????????????// 获取昵称 ????????????????var nickname= $(":input[name=‘nickname‘]"); ????????????????// 获取已选的单选按钮 ????????????????var radio=$(":radio:checked"); ????????????????// 获取已选的复选框 ????????????????var chk=$(":checkbox:checked") ????????????????// 获取已选的下拉框 ????????????????var sel=$(":selected"); ????????????????redSet(username); ????????????????redSet(pwd); ????????????????redSet(repwd); ????????????????redSet(nickname); ????????????????redSet2(radio); ????????????????redSet3(chk); ????????????????redSet4(sel); ????????????}); ????????????function redSet(obj){ ?????????????????if(obj.val()==""){ ???????????????????obj.css("border","1px solid red"); ?????????????????}else{ ???????????????????obj.css("border","1px solid yellow"); ?????????????????} ????????????}; ????????????function redSet2(obj){ ?????????????????if(obj.length==0){ ?????????????????????$(":radio").parent().css("border","1px solid red") ?????????????????}else{ ???????????????????$(":radio").parent().css("border","1px solid yellow") ?????????????????} ????????????}; ????????????function redSet3(obj){ ???????????????if(obj.length==0){ ?????????????????????$(":checkbox").parent().css("border","1px solid red") ?????????????????}else{ ???????????????????$(":checkbox").parent().css("border","1px solid yellow") ?????????????????} ????????????}; ????????????function redSet4(obj){ ???????????????if(obj.val()==""){ ?????????????????????$("select").css("border","1px solid red") ?????????????????}else{ ?????????????????????$("select").css("border","1px solid yellow") ?????????????????} ??????????????}; ????????}); ?????</script></head><body> ???<fieldset> ???????<legend>注册表单</legend> ???????<form onsubmit="return false;"> ??????????<input type="hidden" name="pid" value="1" /> ??????????<p> ??????????????账号:<input type="text" name="username" /> ??????????</p> ??????????<p> ??????????????密码:<input type="password" name="pwd" /> ???????????</p> ???????????<p> ???????????????确认密码:<input type="password" name="repwd" /> ???????????</p> ???????????<p> ???????????????昵称:<input type="text" name="nickname" /> ???????????</p> ???????????<p> ???????????????性别: ???????????????<input type="radio" name="sex" value="1" id="man"><label for="man">男</label> ???????????????<input type="radio" name="sex" value="2" id="woman"><label for="woman">女</label> ???????????</p> ???????????<p> ???????????????爱好: ???????????????<input type="checkbox" name="hobby" value="篮球" id="basketball" /><label for="basketball">篮球</label> ???????????????<input type="checkbox" name="hobby" value="足球" id="football" /><label for="football">足球</label> ???????????????<input type="checkbox" name="hobby" value="羽毛球" id="badminton" /><label for="badminton">羽毛球</label> ???????????????<input type="checkbox" name="hobby" value="其他" id="other" /><label for="other">其他</label> ???????????</p> ???????????<p> ???????????????省份: ???????????????<select> ???????????????????<option value="">--省份--</option> ???????????????????<option value="北京">北京</option> ???????????????????<option value="云南">云南</option> ???????????????????<option value="河北">河北</option> ???????????????????<option value="河南">河南</option> ???????????????</select> ???????????</p> ???????????<input type="submit" value="提交" /> ???????</form> ???</fieldset></body></html>

效果:

七、补充

1、特殊符号的转义

2、选择器中的空格

jQuery(二):jQuery选择器

原文地址:https://www.cnblogs.com/dotnet261010/p/9721296.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved