博客列表 >jQuery常用的选择器函数-2018年4月3日

jQuery常用的选择器函数-2018年4月3日

在路上的博客
在路上的博客原创
2018年04月09日 17:19:43684浏览

jQuery常用的基本选择器:

标签选择器,类选择器,id选择器,通配符选择器 *

实例

实例

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>jQuery常用选择器</title>

	<script type="text/javascript" src="../0402/jquery-3.3.1.js"></script>
	<script type="text/javascript">
		$(document).ready(function(){
			$('p').css('color','red')
			$('#demo').css('color','green')
			$('.lei').css('color','blue')
			$('li').css('list-style-type','none')
		})
	</script>

	<style type="text/css">p {list-style-type: ;}</style>
</head>
<body>
	<p>标签选择器,类选择器,id选择器,通配符选择器 *</p>

	<ul>
		<li id="demo">我我我我</li>
		<li class="lei">你你你你</li>
		<li>他他他他</li>
		<li class="lei">呵呵呵呵</li>
		<li>哈哈哈哈</li>
		<li>嘿嘿嘿嘿</li>
		<li>呼呼呼呼</li>
		<li>丫丫丫丫</li>


	</ul>

	

	
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

层级选择器与特定选择器:

1.后代选择器用空格  

$('li a').css('green')

2.子元素选择器用大于号>  /*只选择子元素,不包括孙子级以下的元素

$('ul > *').addClass('red')

3.相邻兄弟选择器用加号 +

$('li:nth-child(5) + li').addClass('green')

4.全部兄弟用波浪线~

$('li:nth-child(5) ~ li').addClass('green')

5.第一个与最后一个

第一个  $('li:first-child').addClass('green')

简写  $('li:first').addClass('green')


 最后一个  $('li:last-child').css('color','red')

 简写   $('li:last').css('color','red')

6.直接选择某一个元素

  $('li:nth-child(6)').addClass('red')

简写$('li:eq(5)').addClass('red')

注意:!!!jquery使用eq(i),i从0开始,注意与css中的不一样!!!

7去掉当前所有元素的样式

$('*').removeAttr('style')  去掉当前页面所有元素的style属性

$('li').removeAttr('style') 去掉当前页面所有li元素的style属性 

8去掉当前所有元素的class类样式

$('*').removeClass() 去掉当前所有元素的class类样式

 $('li').removeClass() 去掉当前所有li元素的class类样式

9.选中序号大于4的所有元素,注意从0开始计算

$('li:gt(3)').addClass('red')

选中序号小于8的所有元素

 $('li:lt(7)').addClass('red')

10.根据序号特征来选择元素

  10-1选中所有序号为偶数的元素even

    $('li:even').addClass('red')  看上去选择的是奇数,但实际是偶数结构,因为jquery是从0开始编号

    10-2选择奇数用是odd

     $('li:odd').addClass('red')  看上去选择的是偶数,但实际是奇数结构,因为jquery是从0开始编号

     小结:你选择的是偶数,但实际上看到的是奇数,你选择的是奇数,但实际是偶数, 奇偶相反

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>2.层级选择器</title>
    <style type="text/css">
    	.red {color:red;}
    	.green {color:green;}
    </style>
</head>
<body>
	<!-- ul>li{最新电影$$}*10>a{立即播放} -->
	<ul>
		<li>最新电影01<a href="">立即播放</a></li>
		<li>最新电影02<a href="">立即播放</a></li>
		<li>最新电影03<a href="">立即播放</a></li>
		<li>最新电影04<a href="">立即播放</a></li>
		<li>最新电影05<a href="">立即播放</a></li>
		<li>最新电影06<a href="">立即播放</a></li>
		<li>最新电影07<a href="">立即播放</a></li>
		<li>最新电影08<a href="">立即播放</a></li>
		<li>最新电影09<a href="">立即播放</a></li>
		<li>最新电影10<a href="">立即播放</a></li>
	</ul>
</body>
</html>
<script src="jquery-3.3.1.js"></script>
<script>
  //1. 后代: 空格
  $('li a').addClass('green')

  //2. 所有子元素 >
  //仅ul的子元素li前景色变成红色,孙元素<a>文本不会变化
  // $('ul > *').addClass('red')
  //如果用空格分隔,<li><a>的前景色全部会发生变化
  // $('ul  *').css('color','red')

  //3. 相邻兄弟元素 +
  //将第5个li的下一个兄弟:第6个li前景色变更为绿色
  // $('li:nth-child(5) + li').addClass('green')

  //4. 全部兄弟元素 ~
  // $('li:nth-child(5) ~ li').addClass('green')

  //5.第一个与最后一个元素
  $('li:first-child').addClass('green')
  $('li:first').addClass('green')

  $('li:last-child').css('color','red')
  $('li:last').css('color','red')

  //6.直接选中某一个元素
  $('li:nth-child(6)').addClass('red')
  //jquery使用eq(i),i从0开始,注意与css中的不一样
  $('li:eq(5)').addClass('red')

  //7选中大于或小于某个序号的元素
  //先去掉所有元素上的class
  $('*').removeClass()
  //仅去掉li,不包括li下面的a,链接仍为绿色
  $('li').removeClass()

  //选中序号大于4的所有元素,注意从0开始计算
  // $('li:gt(3)').addClass('red')
  //选中序号小于8的所有元素
  // $('li:lt(7)').addClass('red')


  //根据序号特征来选择元素
  //选中所有序号为偶数的元素even
  //因为是从0开始,0,2,,4,所以看上去像是选择了奇数,要注意
  // $('li:even').addClass('red')
  //你可能猜到了,选择奇数用是odd,当然,你是对的
  $('li:odd').addClass('red')

</script>

运行实例 »

点击 "运行实例" 按钮查看在线实例


表单过滤器

实例

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>4.表单过滤器</title>
</head>
<body>
	<form action="" method="post">
	<fieldset>
		<legend>用户注册</legend>
		<p>用户名:<input type="text" name="name" required></p>
		<p>邮箱:<input type="email" name="email" required></p>
		<p>密码:<input type="password" name="password1" required></p>
		<p>确认密码:<input type="password" name="password2" required></p>
		<p>性别:
			<input type="radio" name="gender" value='male' checked>男
			<input type="radio" name="gender" value='female'>女
		</p>
		<p>上传头像: <input type="file" name=""></p>
		<p>Web语言:
			<input type="checkbox" name="lang[]" value="javascript">JavaScript
			<input type="checkbox" name="lang[]" value="php" checked>PHP
			<input type="checkbox" name="lang[]" value="java">Java
			<input type="checkbox" name="lang[]" value="python">Python
		</p>
		<p>级别:
			<select>
				<option value="0">小白</option>
				<option value="1" selected>入门</option>
				<option value="2">中级</option>
				<option value="3">高级</option>
				<option value="4">去火星吧</option>
			</select>
		</p>
		<p>简介:<textarea cols="40" rows="5"></textarea></p>
		<p><input type="hidden" name="userId" value="1010" disabled=""></p>
		<p>
			<!-- <input type="submit" name="submit" value="提交"> -->
			<!-- <input type="reset" name="reset" value="重填"> -->

			<button type="submit" name="submit">提交</button>
			<button type="reset" name="reset">重填</button>
		</p>
	</fieldset>				
	</form>
</body>
</html>
<script type="text/javascript" src="../js/jquery-3.3.1.js"></script>
<script type="text/javascript">
	//1根据类型选择表单控件元素
	//css写法,仅选到到所有的input,其它的控件选不上
	// $('input').css('background-color', 'lightgreen')
	//jquery写法,前面加上冒号即可,除了input,select,button,textarea全部可以选上
	// $(':input').css('background-color', 'lightgreen')
	//如果只想选input标签,在:input之前加上标签限定:input即可,此时与css语法效果完全一致
	// $('input:input').css('background-color', 'lightgreen')

	//:input:本意就是选择全部的表单控件的意思,后面可以用css属性进行限制,例如获取密码框
	// $(':input[type="password"]').css('background-color', 'lightgreen')
	//后面除了可以用css属性进行限制外,更推荐使用jquery的过滤器,例如密码框过滤器就是:password
	// $(':input:password').css('background-color', 'lightgreen')
	//换个颜色以示区别,从这里可以看出,过滤器之间也支持链式操作
	// $(':input:password').css('background-color', 'skyblue')

	//我们再作几个练习
	//2.根据表单控件的特征来选择元素
	//:input,只选择表单元素,不包括:file,:image,:input这个我们已做过
	//只选择file类型
	$(':file').css('background-color', 'lightgreen')
	//只选择文本框:type="text"
	$(':text').css('color',"red")

	//只选择提交按钮
	$('button:submit').css({
		'background-color':'orange',
		'color':'white',
		'font-size':'1.2em',
		'border': 'none',
		'width':'90px',
		'height':'40px'
	})
	
</script>

运行实例 »

点击 "运行实例" 按钮查看在线实例

常见常用的过滤方法

实例

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>5.常用的过滤方法</title>
</head>
<body>
	<ul>
		<li>最新电影01<a href="">立即播放</a></li>
		<li>最新电影02<a href="">立即播放</a></li>
		<li>最新电影03<a href="">立即播放</a></li>
		<li>最新电影04<a href="">立即播放</a></li>
		<li>最新电影05<a href="">立即播放</a></li>
		<li>最新电影06<a href="">立即播放</a></li>
		<li>最新电影07<a href="">立即播放</a></li>
		<li>最新电影08<a href="">立即播放</a></li>
		<li>最新电影09<a href="">立即播放</a></li>
		<p>我是一个另类呀</p>
		<li>最新电影10<a href="">立即播放</a></li>
	</ul>
</body>
</html>
<script src="../js/jquery-3.3.1.js"></script>
<script type="text/javascript">
	//过滤方法,也就是函数,大多与前面介绍过的过滤器功能是一致的
	//1:get()将jquery对象转为DOM对象:将第二个文本的前景色设置为红色
	$('li').get(1).style.color = 'red'

	//2.eq():获取指定序号的元素,注意,返回的是jQuery对象
	$('li').eq(4).css('color','red')

	//3.first():返回第一个元素,不需要参数
	$('li').first().css('color','red')

	//4.first():返回最后一个元素,不需要参数
	$('li').last().css('color','red')

	//5.toArray(),返回DOM数组,注意不是jquery对象
	var li = $('li').toArray()
	for(var i=0; i<li.length; i++){
		li[i].style.color = 'green'
	}

	//6.find():返回所有的后代元素,包括子,孙...
	$('ul').find('li').css('color','coral')
	$('ul').find('a').css('color','cyan')

	//7.children()返回所有的直接子元素
	// $('ul').children().css('color','deeppink')
	$('ul').children('p').css('color','deeppink')


	//8.对每个元素执行回调函数
	// $('li').each(function(){
	// 	$(this).css('background-color','wheat')
	// 	$(this).css('color','black')
	// 	$(this).css('font-size','1.3em')

	// })

	//9.元素遍历方法
	//next()下一个同级元素
	$('li').eq(2).next().css('color','blue')
	//nextAll()后面全部的同级元素
	$('li').eq(2).nextAll().css('color','blue')
	//siblings():返回所选元素的所有同级元素,除它自己
	$('li').eq(2).siblings().css('color','blue')

	//向前遍历
	//prev():前一个同级元素
	$('li').removeAttr('style')

	$('li').eq(6).prev().css('color','coral')

	//prevAll():您一定猜到了,对,是前面的所有同级元素
	$('li').eq(6).prevAll().css('color','coral')

	//10. add(selector),将元素添加到所选的集合中
	//先去掉所有元素上面的自定义样式,将元素打回原型,素颜模样
	$('*').removeAttr('style')

	//将所有li文本设置为红色,你会发现有一个p没有选上,这也正常
	$('li').css('color','red')
	//那么如何才能选上p元素呢,只有加大选区,把p元素放进这个选区中就可以了
	//使用add()方法就可以做到
	$('li').add('p').css('color','red')

	//11. filter()从结果中返回符合条件的元素
	//仅仅返回第6个元素
	// $('li').filter(':eq(5)').css('background-color','lightgreen')

	//12. not()与filter()功能正好相反,去掉满足条件的元素
	$('li').not(':eq(5)').css('background-color','lightgreen')

	//13. slice(start, end),返回指定范围的元素
	$('*').removeAttr('style')

	//包括起始位置,不包括结束位置,返回的结果数量是5-2=3
	// $('li').slice(2,5).css('background-color','lightgreen')

	//获取前4个元素
	// $('li').slice(0,4).css('background-color','lightgreen')

	//省略第二个参数,默认从当前开始直到结尾
	$('li').slice(4).css('background-color','lightgreen')

</script>

运行实例 »

点击 "运行实例" 按钮查看在线实例



上一条:0408 作业下一条:javascript
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议