a毛 jquery 学习记 4过滤选择器2

jquery 学习 四(2) 过滤选择器

参考资料:李炎恢老师的视频 、w3cschool  、锋利的jquery、

做法跟前面一样,复制前面的文件夹到'4过滤选择器2'中,

index.html 页面内容跟上次内容一样;

<body> 
	 <ul >
		<li>列表1</li>
		<li>列表2</li>
		<li>列表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>
         <ul>
         <li>列表1</li>
      </ul>
 </body>


4.子元素过滤器

先来看下表了解一下


先回忆一下 :first和:last的用法

dom.js

$(function(){
   $('li:first').css('background','#ccc'); //将列表第一个li元素加背景颜色
   $('li:last').css('background','#ccc'); //       最后一个li元素加背景颜色
 });
如果要给列表第一个li元素第一个列表的最后一个li元素加背景颜色应该怎么做,(有什么方法,哪个大神看到望给个评论)

用之前学到的一个函数
 $('li:first,ul li:eq(5)').css('background','#ccc'); //直接定位到第5个
怎么样把两个ul的第一个li元素增加背景颜色,如下dom.js

  $(function(){
	   $('li:first-child').css('background','#ccc'); //获取每个父元素的第一个元素 
	   $('li:last-child').css('background','#ccc'); // 获取每个父元素的最后一个元素 
           $('li:only-child').css('background','#ccc'); //获取只有一个子元素的元素
           $('li:nth-child(odd)').css('background','#ccc');  //获取每个li元素的奇数元素
        $('li:nth-child(even)').css('background','#ccc'); //               偶数 
           $('li:nth-child(4)').css('background','#ccc')  //获取每个li元素的第4个元素   注意索引是从1 开始的

 
     //   $('li:nth-child(索引值)').css('background','#ccc')  注意这里的索引值可以是2n ,3n如下操作
            $('li:nth-child(2n)').css('background','#ccc');   
        $('li:nth-child(3n)').css('background','#ccc');
 
 
  }); 
 


 5.其它选择器 

jQuery在选择器和过滤器上,还提供了一些常用的方法,方便我们开发时灵活使用。看下表;

is 示例如下

	$(function(){
		alert($('li').is('.red'));
		//is :判断某一个元素是不是指定的元素
		alert($('.red').is('li'))//red是不是li的选择器
		alert($('.red').is('div'))//red是不是div的选择器
		//is里面还可以放jQuery对象如下
		alert($('.red').is($('li')));  //含意同上
		alert($('.red').is($('div'))); //含意同上
                alert($('.red').is($('li').eq(2))); //red是不是li选择器的第三个元素
                //is 里面还可以放Dom对象 如下
         alert($('.red').is($('li').get(2)));
      
         //着重看一下最后一种情况
              alert($('.red').is(function(){            
            //return $(this);   //注意 $(this) == $('.red')
            //打印看一下他们的DOM结构
            //alert($(this).get(0)); alert($('.red').get(0));   //他们两个打印的结构都一样;
            return $(this).attr('title')== '列表3'
        }));
 });
	
hasClass 
	$(function(){
		$('li').eq(2).hasClass('red'); //判断li元素的第三个是不是含有red
	});
since

	$(function(){
		//alert($('li').eq(2).hasClass('red')); //判断li元素的第三个是不是含有red
		$('li').slice(0,2).css('background','#ccc'); //选择从第0个到第3个位置加背景颜色
		$('li').slice(0,4).css('background','#ccc'); //选择从第0个到第5个位置加背景颜色
		$('li').slice(2,4).css('background','#ccc');//选择从第3个到第5个位置加背景颜色
		//要选择第列表4,5 怎么选呢,看如下
		$('li').slice(3,4).css('background','#ccc');
               $('li').slice(3).css('background','#ccc'); //从第四个位置开始到最后全部加背景颜色
               $('li').slice(0,-2).css('background','#ccc'); //从倒数第三个开始向前选定所有加背景
               $('li').slice(2,-2).css('background','#ccc'); //前两个和末尾两个未选定,其它加背景颜色
 });
end

修改 index.html如下

 <ul id='box'>
		<li>列表1</li>
		<li>列表2</li>
		<li class='red' title='列表3'>列表3</li>
		<li class='red'>列表4</li>
		<li>列表5</li>
		<li>列表6</li>
	 </ul>

$(function(){
		//返回当前元素的前一个元素的状态 
		alert($('#box').find('li').end().get(0)); //注意这里的前一个元素不是指父元素,而是跟他相邻的前一个
	});

 

contents

修改一下index.html增加如下内容

<div> 
   我的家
	<strong>314 </strong>
   在山西 sx
  </div>

$(function(){
		//alert($('div:first').children().size()); //查看div下有几个子节点
		alert($('div:first').contents().size()); //查看div下有几个子节点包括文本的数量
		
	});

filter

    $(function(){
		$('li').filter('.red').css('background','#ccc');//选定li下面有red的元素
		$('li').filter('.red,:first,:last').css('background','#ccc');//选定li下面有red的元素,并增加首尾选择
		


	});

 $(function(){
        $('li').filter(function(){
            return $(this).attr('class') == 'red' && $(this).attr('title')=='列表3'  选定li下面有red的元素,且title为列表3的增加背景颜色
        }).css('background','#ccc');


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值