Jquery(7)-过滤选择器(1)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">    
<html>    
  <head>    
    <title>jquey007.html</title>    
        
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">    
    <meta http-equiv="description" content="this is my page">    
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">    
        
    <script type="text/javascript" src="js/jquery-1.11.0.js"></script>    
    <!-- <script type="text/javascript" src="js/jquery-2.1.0.js"></script> -->        
    <script type="text/javascript" src="js007/demo.js"></script>    
    <link rel="stylesheet" href="js007/style.css" type="text/css" />
  </head>
  
<body>
	<div style="display: none;">我们的新域名为:ycku.com</div>
	<div>我们的旧域名为:yc60.com</div>
	<div></div>
	<div></div>
	<ul>
		<li>列表1</li>
		<li>列表2</li>
		<li class="red">列表3</li>
		<li>列表4</li>
		<li>列表5</li>
		<li>列表6</li>
	</ul>
	<ul>
		<li>列表1</li>
		<li>列表2</li>
		<li>列表3</li>
		<li>列表4</li>
		<li>列表5</li>
		<li>列表6</li>
	</ul>
	<input type="text" />
	<h3>我是标题</h3>
</body>
</html>
/*
学习要点:
1.基本过滤器
2.内容过滤器
3.可见性过滤器

过滤选择器简称:过滤器。它其实也是一种选择器,而这种选择器类似与CSS3
(http://t.mb5u.com/css3/)里的伪类,可以让不支持CSS3 的低版本浏览器也能支持。和常规
选择器一样,jQuery 为了更方便开发者使用,提供了很多独有的过滤器。
一.基本过滤器
过滤器主要通过特定的过滤规则来筛选所需的DOM 元素,和CSS 中的伪类的语法类
似:使用冒号(:)开头。
过滤器名	jQuery 			语法说明				返回
:first 		$('li:first') 		选取第一个元素				单个元素
:last 		$('li:last') 		选取最后一个元素			单个元素
:not(selector) 	$('li:not(.red)') 	选取class 不是red的li元素		集合元素
:even 		$('li.even') 		选择索引(0 开始)是偶数的所有元素	集合元素
:odd 		$('li:odd') 		选择索引(0 开始)是奇数的所有元素	集合元素
:eq(index) 	$('li:eq(2)') 		选择索引(0 开始)等于index 的元素	单个元素
:gt(index) 	$('li:gt(2)') 		选择索引(0 开始)大于index 的元素	集合元素
:lt(index) 	$('li.lt(2)') 		选择索引(0 开始)小于index 的元素	集合元素
:header 	$(':header') 		选择标题元素,h1 ~ h6 			集合元素
:animated 	$(':animated') 		选择正在执行动画的元素			集合元素
:focus 		$(':focus') 		选择当前被焦点的元素			集合元素
$('li:first').css('background', '#ccc'); //第一个元素
$('li:last).css('background', '#ccc'); //最后一个元素
$('li:not(.red)).css('background', '#ccc'); //非class 为red 的元素
$('li:even').css('background', '#ccc'); //索引为偶数的元素
$('li:odd).css('background', '#ccc'); //索引为奇数的元素
$('li:eq(2)).css('background', '#ccc'); //指定索引值的元素
$('li:gt(2)').css('background', '#ccc'); //大于索引值的元素
$('li:lt(2)').css('background', '#ccc'); //小于索引值的元素
$(':header').css('background', '#ccc'); //页面所有h1 ~ h6 元素
注意::focus 过滤器,必须是网页初始状态的已经被激活焦点的元素才能实现元素获取。
而不是鼠标点击或者Tab 键盘敲击激活的。
$('input').get(0).focus(); //先初始化激活一个元素焦点
$(':focus').css('background', 'red'); //被焦点的元素
jQuery 为最常用的过滤器提供了专用的方法,已达到提到性能和效率的作用:
$('li').eq(2).css('background', '#ccc'); //元素li 的第三个元素,负数从后开始
$('li').first().css('background', '#ccc'); //元素li 的第一个元素
$('li').last().css('background', '#ccc'); //元素li 的最后一个元素
$('li').not('.red').css('background', '#ccc'); //元素li 不含class 为red 的元素
注意::first、:last 和first()、last()这两组过滤器和方法在出现相同元素的时候,first 会
实现第一个父元素的第一个子元素,last 会实现最后一个父元素的最后一个子元素。所以,
如果需要明确是哪个父元素,需要指明:
$('#box li:last').css('background', '#ccc'); //#box 元素的最后一个li
//或
$('#box li).last().css('background', '#ccc'); //同上
二.内容过滤器
内容过滤器的过滤规则主要是包含的子元素或文本内容上。
过滤器名		jQuery 				语法说明			返回
:contains(text)		$(':contains("ycku.com")')	选取含有"ycku.com"文本的元素	元素集合
:empty 			$(':empty') 			选取不包含子元素或空文本的元素	元素集合
:has(selector) 		$(':has(.red)') 		选取含有class 是red 的元素	元素集合
:parent 		$(':parent') 			选取含有子元素或文本的元素	元素集合
//选择元素文本节点含有ycku.com 文本的元素
$('div:contains("ycku.com")').css('background', '#ccc');
$('div:empty').css('background', '#ccc'); //选择空元素
$('ul:has(.red)').css('background', '#ccc'); //选择子元素含有class 是red 的元素
$(':parent').css('background', '#ccc'); //选择非空元素
jQuery 提供了一个has()方法来提高:has 过滤器的性能:
$('ul').has('.red').css('background', '#ccc'); //选择子元素含有class 是red 的元素
jQuery 提供了一个名称和:parent 相似的方法,但这个方法并不是选取含有子元素或文本
的元素,而是获取当前元素的父元素,返回的是元素集合。
$('li').parent().css('background', '#ccc'); //选择当前元素的父元素
$('li').parents().css('background', '#ccc'); //选择当前元素的父元素及祖先元素
$('li').parentsUntil('div').css('background', '#ccc'); //选择当前元素遇到div 父元素停止
三.可见性过滤器
可见性过滤器根据元素的可见性和不可见性来选择相应的元素。
过滤器名	jQuery 语法	说明			返回
:hidden 	$(':hidden') 	选取所有不可见元素	集合元素
:visible 	$(':visible') 	选取所有可见元素	集合元素
$('p:hidden).size(); //元素p 隐藏的元素
$('p:visible').size(); //元素p 显示的元素
注意::hidden 过滤器一般是包含的内容为:CSS 样式为display:none、input 表单类型为
type="hidden"和visibility:hidden 的元素。

$(function () {
	
	//$('li:first').css('background', '#ccc');
	//$('li:last').css('background', '#ccc');
	//$('#box li:last').css('background', '#ccc');
	//$('ul:first li:last').css('background', '#ccc');
	//$('li:not(.red)').css('background', '#ccc');
	//$('li:even').css('background', '#ccc');
	//$('li:odd').css('background', '#ccc');
	//$('li:eq(2)').css('background', '#ccc');
	//$('li:eq(-2)').css('background', '#ccc');
	//$('li:gt(3)').css('background', '#ccc');
	//$('li:lt(2)').css('background', '#ccc');
	//$('div :header').css('background', '#ccc');
	//$('input').get(0).focus();
	//$(':focus').css('background', 'red');
	
	//$('li').first().css('background', '#ccc');
	//$('li').last().css('background', '#ccc');
	//$('li').not('.red').css('background', '#ccc');
	//$('li').eq(2).css('background', '#ccc');
	//$('div:contains("ycku.com")').css('background', '#ccc');
	//$('div:empty').css('background', '#ccc').css('height','20px');
	//$('ul:has(.red)').css('background', '#ccc');
	//$('div:parent').css('background', '#ccc');
	//$('ul').has('.red').css('background', '#ccc');
	
	//alert($('li').parent().size());
	//alert($('li').parent().get(0));
	//$('li').parent().css('background', '#ccc');
	//$('li').parents().css('background', '#ccc');
	//$('li').parentsUntil('body').css('background', '#ccc');
	
	//alert($('div:hidden').size());
	//$('div:hidden').css('background', '#ccc').show(1000);
	//alert($('div:visible').size());
	
	
});
*/


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值