博客列表 >403--JQ之选择器

403--JQ之选择器

小威的博客
小威的博客原创
2018年04月04日 18:16:21788浏览
  • JQ之选择器作业效果图如下:


403.jpg

  • JQ之选择器作业源代码如下:


实例

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>JQ选择器练习</title>
	<style tylie="text/css">
		.bg1 {background-color: #008000;}
		.bg2 {background-color: #ffd700;}
		.bg3 {background-color: blue;}
		.bg4 {background-color: #E9967A;}
		.bg5 {background-color: #DCDCDC;}
		.bg6 {background-color: #E6E6FA;}
	</style>
</head>
<body>
	<div>
		<h2>长相思二首</h2><span></span>
		<ul>
			<li>长相思,在长安。</li>
			<li>络纬秋啼金井栏,微霜凄凄簟色寒。</li>
			<p>孤灯不明思欲绝,</p>
			<li>卷帷望月空长叹,美人如花隔云端。</li>
			<li>上有青冥之长天,下有渌水之波澜。</li>
			<li id="suo">天长路远魂飞苦,梦魂不到关山难。</li>
		</ul>
		<dl>
			<li>长相思,摧心肝。</li>
			<li>日色欲尽花含烟,月明欲素愁不眠。</li>
			<li>赵瑟初停凤凰柱,蜀琴欲奏鸳鸯弦。</li>
			<li>此曲有意无人传,愿随春风寄燕然。</li>
			<p>忆君迢迢隔青天,</p>
			<li>昔时横波目,今作流泪泉。</li>
			<li class="suo">不信妾肠断,归来看取明镜前。</li>
		</dl>
	</div>
</body>
</html>
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript">
	// 写整体样式加背景图
	$('div').css({
		"width":"500",
		"height":"700",
		"background-image":"url(http://y.photo.qq.com/img?s=ImWrdXC2q&l=y.jpg)",
		"text-align":"center",
		"margin":"auto"
	})
	// 写UL的样式
	$('ul').css({
		"padding":"0",
		"margin":"0",
		"padding-top":"10px",
		"margin":"auto",
		"width":"80%"
	})
	// 写DL的样式
	$('dl').css({
		"margin":"auto",
		"width":"80%",
		"padding-top":"20px"
	})
	// 写标题样式
	$("h2").css({
		"color":"red",
		"padding-top":"120px",
	})
	// 在空标签处填写作者并添加字体颜色
	$(':empty').text('【唐】 李白').css('color','#b22222')
	// 写所有LI的整体样式
	$('li,p').css({
		"width":"300px",
		"margin":"auto",
		"list-style-type":"none",
		"line-height":"1.9",
		"font-size":"1.1em",
	})
	// 分别为UL和DL添加不同背景和圆角
	$('ul').addClass('bg5').css('border-radius','10%')
	$('dl').addClass('bg6').css('border-radius','10%')
	$('#suo').css('padding-bottom','10px')
	$('.suo').css('padding-bottom','10px')

    // 第一行 UL下第1个li    整体第1个li
	$('ul').find('li:first-child').css('color','blue') 
	$('li:eq(0)').addClass('bg1')
	// 第二行  第2个li    所有LI下含有文字“井”的那个li
	$('li').get(1).style.color = 'fuchsia'
	$('li:contains("井")').addClass('bg2')
	// 第三行  ul下带P的子元素 包含第十行
	$('ul').children('p').css('color','lime')
	// 第四行  所有LI中2和3之间  第3个li   因为第三行是个P  所以第3个LI是第四行
	$('li').slice(2,3).css('background-color','lightgreen')
	$('li').eq(2).css('color','#FF4500')
	// 第五行 第4个li
	$('li:eq(3)').addClass('bg1')
	$('li').get(3).style.color = '#ffa500'
	// 第六行  id为suo的为第六行
	$('#suo').css('color','#000080')
	// 第七行  就返回第6个li元素  因为eq从0开始算  中间还有个P标签 dl下面第一个li元素
	$('li').filter(':eq(5)').css('color','red')
	$('dl').find('li:first').addClass('bg4')
	// 第八行 dl下面第1个li的相邻兄弟
	$('dl').find('li:nth-child(1) + li').css('background-color','red')
	$('dl').find('li:nth-child(1) ~ li').css('color','#fff')
	// 第九行  第7个li 中间有两个P标签
	$('li:gt(6)').css('background-color','#AFEEEE')
	$('li:gt(6)').css('color','#A52A2A')
	// 第十行 第7个li的下一个 就是第8个li  中间有两个P标签
	$('li').eq(7).next().css('color','blue')
	$('li').eq(7).next().css('background-color','#ff7f50')
	// 第十一行  dl下的子元素P标签
	$('dl').find('p').css('background-color','#98fb98')
	$('p').css('color','#00008B')
	// 第十二行  第11个li前一个li元素  dl下面最后一个元素的前一个li元素
	$('li').eq(10).prev().css('background-color','red')
	$('dl').find('li:last').prev().css('color','gold')
	// 第十三行 dl下面最后一个li元素
	$('dl').find('li:last').css('color','#FF4500')	
</script>

运行实例 »

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

总结:

JQ的选择器

一,基本选择器

1. tag标签选择器

$('td'/'ul'/'h'/'li').css()

2.id选择器

$('#title').css()

3.class类选择器

$('.main').addClass(加载已写好的css样式名)

4.*通配选择符

$('tr:nth-child(3) ~ *').css()

二,层级选择器

 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.选中大于或小于某个序号的元素

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

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

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

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

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

  //选中所有序号为偶数的元素even

  //因为是从0开始,0,2,,4,所以看上去像是选择了奇数,要注意

  $('li:even').addClass('red')

  //你可能猜到了,选择奇数用是odd,当然,你是对的

  $('li:odd').addClass('red')

三,内容过滤器

1.选择包含指定文本内容的元素

// $('p:contains(\'春\')').addClass('bg-wheat')

$('p:contains("春")').addClass('bg-wheat')

$('p:contains("风")').addClass('bg-green')

2.选择内容为空的标签,空是指没有子标签,甚至连文本内容都不能有

$(':empty').text('作者:孟浩然')

3.选择有img标签(图片)的p元素,给它加个背景

$('p:has("img")').addClass('bg-pink')

4.选择所有以p为父元素的节点,添加绿背景

$('p:parent').addClass('bg-green')

5.取反/反选过滤器not,选择页面中所有内容不为空的元素,前景色变更为红色

$(':not(:empty)').css('color','red')

四,表单过滤器

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'

})

五,常用的过滤方法

//过滤方法,也就是函数,大多与前面介绍过的过滤器功能是一致的

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.last():返回最后一个元素,不需要参数

$('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').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),返回指定范围的元素

//包括起始位置,不包括结束位置,返回的结果数量是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')



//去掉所有元素上的class/清除所有已加样式

  $('*').removeClass()

  //仅去掉li,不包括li下面的a,链接仍为绿色

  $('li').removeClass()

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