Blogger Information
Blog 71
fans 1
comment 1
visits 86922
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
403--JQ之选择器
小威的博客
Original
789 people have browsed it
  • 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()

Correction status:Uncorrected

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post