jQuery--筛选

筛选

l  选择器可以完成功能,筛选提供相同函数。

       选择器    :first

       筛选       first()

l  对比:

       $("div:first")   直接获得第一个div (永远只能操作第一个)

       $("div").first()       先获得所有的div,从所有的中筛选出第一个。 (可以操作第一个,也可以操作所有)


1、过滤


eq(index | -index)  类似 :eq()

       index:正数,从头开始获得指定索引的元素。这个元素的位置是从0算起。0表示第一个

       -index:负数,从尾开始获得指定索引的元素。1算起。 -1表示最后一个

first()      第一个 :first

last()       最后一个 :last

is()         判断

hasClass()       判断是否是指定class 。<xxx class="my">

       这其实就是 is("." + class)。

filter() 筛选出与指定表达式匹配的元素集合

not()       将指定内容删除

--------------------------------

has() 子元素是否有

slice(start , end)  截取元素,[2,4)  --> 2,3

map() jQuery对象 拆分成  jQuery对象数组


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>05-可见性过滤选择器.html</title>
 <!--   引入jQuery --> 
 <script src="../js/jquery-1.8.3.js" type="text/javascript"></script>
 <script src="./script/assist.js" type="text/javascript"></script>
 <link rel="stylesheet" type="text/css" href="./css/style.css" />   
  <script type="text/javascript">
	$(document).ready(function(){
//  <input type="button" value=" 选择索引值等于3的元素"  id="b1"/>
		$("#b1").click(function(){
			$("div").eq(3).css("background-color","#ff0");
//			$("div").eq(-1).css("background-color","#ff0").show();
		});
//  <input type="button" value=" 选择第一个div元素"  id="b2"/>
		$("#b2").click(function(){
			$("div").first().css("background-color","#ff0");
		});
//  <input type="button" value=" 选择最后一个div元素"  id="b3"/>
		$("#b3").click(function(){
			$("div").last().css("background-color","#ff0").show();
		});
//  <input type="button" value=" id=one div样式是否是one"  id="b4"/>
		$("#b4").click(function(){
			alert($("div#one").hasClass("one"));
		});
//  <input type="button" value=" 选择class为none的所有div"  id="b5"/>
		$("#b5").click(function(){
//			$("div.none").css("background-color","#ff0").show();
			$("div").filter(".none").css("background-color","#ff0").show();
		});
//  <input type="button" value=" 样式为hide div 下一个兄弟是否是span"  id="b6"/>
		$("#b6").click(function(){
			alert($("div.hide").next().is("span"));
		});
//  <input type="button" value=" 选择所有div中含有div的"  id="b7"/>
		$("#b7").click(function(){
			$("div").has("div").css("background-color","#ff0");
		});
//  <input type="button" value=" 选择样式为one div 子元素中没有title属性的 父div"  id="b8"/>
		$("#b8").click(function(){
//			$("div.one").not("[title]").css("background-color","#ff0");
//			$("div.one").children().not("[title]").parent().css("background-color","#ff0");
			//-----------
//			$("div.one").children().filter("[title]").parent().css("background-color","#ff0");
			$("div.one").not($("div.one").children().filter("[title]").parent()).css("background-color","#ff0");
		});
//  <input type="button" value=" 选择所以号为3,4的div"  id="b9"/>
		$("#b9").click(function(){
			$("div").slice(3,5).css("background-color","#ff0");
		});
	});
  
  </script>
</head>
<body>
  <h3>可见性过滤选择器.</h3>
  <button id="reset">手动重置页面元素</button>
  <input type="checkbox" id="isreset" checked="checked"/><label for="isreset">点击下列按钮时先自动重置页面</label>
  <br/><br/>
  <input type="button" value=" 选择索引值等于3的元素"  id="b1"/>
  <input type="button" value=" 选择第一个div元素"  id="b2"/>
  <input type="button" value=" 选择最后一个div元素"  id="b3"/>
  <input type="button" value=" id=one div样式是否是one"  id="b4"/>
  <input type="button" value=" 选择class为none的所有div"  id="b5"/>
  <input type="button" value=" 样式为hide div 下一个兄弟是否是span"  id="b6"/>
  <input type="button" value=" 选择所有div中含有div的"  id="b7"/>
  <input type="button" value=" 选择样式为one div 子元素中没有title属性的div"  id="b8"/>
  <input type="button" value=" 选择所以号为3,4的div"  id="b9"/>
  <br /><br />
  
  <!--文本隐藏域-->
 <input type="hidden" value="hidden_1">
 <input type="hidden" value="hidden_2">
 <input type="hidden" value="hidden_3">
 <input type="hidden" value="hidden_4">
  
  <div class="one" id="one" >
 id为one,class为one的div
      <div class="mini">class为mini</div>
  </div>

    <div class="one"  id="two" title="test" >
	 id为two,class为one,title为test的div.
      <div class="mini"  title="other">class为mini,title为other</div>
      <div class="mini"  title="test">class为mini,title为test</div>
  </div>

  <div class="one">
      <div class="mini">class为mini</div>
      <div class="mini">class为mini</div>
	  <div class="mini">class为mini</div>
	  <div class="mini"  title="tesst">class为mini,title为tesst</div>
  </div>


  <div style="display:none;"  class="none">style的display为"none"的div</div>
  
  <div class="hide">class为"hide"的div</div>
  
  <span id="mover">正在执行动画的span元素.</span>
</body>
</html>


2、查找


<A>

       <B>

              <C></C>

              <D></D>

              <E></E>

              <F></F>

       </B>

</A>

B.children([...])   获得所有的子元素。CDEF

A.find(D) 从指定的区域查询指定元素。D

D.next()  下一个兄弟。E

D.nextAll() 后面的所有兄弟。EF

E.prev()  上一个兄弟。D  (previous)

E.prevAll() 前面的所有兄弟。CD

E.siblings()     所有兄弟。CDF

E.parent() 父元素。B

E.closest(A)  向上获得指定的父元素(含自己),如果获得返回一个对象,如果没有没有对象。

------------------------------

 

C.nextUntil(E)  获得后面所有兄弟,直到指定条件为止。DE

F.prevUntil(D)  获得前面所有兄弟,直到指定条件为止。DE

 

E.parents()   获得所有的父元素。AB

 

l  closest和parents的主要区别是:

1,前者从当前元素开始匹配寻找,后者从父元素开始匹配寻找;

2,前者逐级向上查找,直到发现匹配的元素后就停止了,后者一直向上查找直到根元素,然后把这些元素放进一个临时集合中,再用给定的选择器表达式去过滤;

3,前者返回0或1个元素,后者可能包含0个,1个,或者多个元素。


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>05-可见性过滤选择器.html</title>
 <!--   引入jQuery --> 
 <script src="../js/jquery-1.8.3.js" type="text/javascript"></script>
 <script src="./script/assist.js" type="text/javascript"></script>
 <link rel="stylesheet" type="text/css" href="./css/style.css" />   
  <script type="text/javascript">
  	$(document).ready(function(){

//  <input type="button" value=" 选择 id=two 所有子元素"  id="b1"/>
		$("#b1").click(function(){
			$("#two").children().css("background-color","#ff0");
		});
//  <input type="button" value=" 选择 id=two 子元素title=other 元素 "  id="b2"/>
		$("#b2").click(function(){
			$("#two").children("[title='other']").css("background-color","#ff0");
		});
//  <input type="button" value=" 选择 id=two 下一个兄弟"  id="b3"/>
		$("#b3").click(function(){
			$("#two").next().css("background-color","#ff0");
		});
//  <input type="button" value=" 选择 id=two 后面的所有兄弟"  id="b4"/>
		$("#b4").click(function(){
			$("#two").nextAll().css("background-color","#ff0").show();
		});
//  <input type="button" value=" 选择 id=two 上一个兄弟"  id="b5"/>
		$("#b5").click(function(){
			$("#two").prev().css("background-color","#ff0").show();
		});
//  <input type="button" value=" 选择 id=two 前面的所有兄弟"  id="b6"/>
		$("#b6").click(function(){
			$("#two").prevAll().css("background-color","#ff0");
		});
//  <input type="button" value=" 选择 id=two 所有兄弟"  id="b7"/>
		$("#b7").click(function(){
			$("#two").siblings().css("background-color","#ff0").show();
		});
//  <input type="button" value=" 选择 id=two 父元素"  id="b8"/>
		$("#b8").click(function(){
			$("#two").parent().css("background-color","#ff0");
		});
//  <input type="button" value=" 选择title='tesst' 父元素body元素"  id="b9"/>
		$("#b9").click(function(){
			$("div[title='tesst']").closest("body").css("background-color","#ff0");
		});
	});
  
  </script>
</head>
<body>
  <h3>可见性过滤选择器.</h3>
  <button id="reset">手动重置页面元素</button>
  <input type="checkbox" id="isreset" checked="checked"/><label for="isreset">点击下列按钮时先自动重置页面</label>
  <br/><br/>
  <input type="button" value=" 选择 id=two 所有子元素"  id="b1"/>
  <input type="button" value=" 选择 id=two 子元素title=other 元素 "  id="b2"/>
  <input type="button" value=" 选择 id=two 下一个兄弟"  id="b3"/>
  <input type="button" value=" 选择 id=two 后面的所有兄弟"  id="b4"/>
  <input type="button" value=" 选择 id=two 上一个兄弟"  id="b5"/>
  <input type="button" value=" 选择 id=two 前面的所有兄弟"  id="b6"/>
  <input type="button" value=" 选择 id=two 所有兄弟"  id="b7"/>
  <input type="button" value=" 选择 id=two 父元素"  id="b8"/>
  <input type="button" value=" 选择title='tesst' 父元素body元素"  id="b9"/>
  <br /><br />
  
  <!--文本隐藏域-->
 <input type="hidden" value="hidden_1">
 <input type="hidden" value="hidden_2">
 <input type="hidden" value="hidden_3">
 <input type="hidden" value="hidden_4">
  
  <div class="one" id="one" >
 id为one,class为one的div
      <div class="mini">class为mini</div>
  </div>

    <div class="one"  id="two" title="test" >
	 id为two,class为one,title为test的div.
      <div class="mini"  title="other">class为mini,title为other</div>
      <div class="mini"  title="test">class为mini,title为test</div>
  </div>

  <div class="one">
      <div class="mini">class为mini</div>
      <div class="mini">class为mini</div>
	  <div class="mini">class为mini</div>
	  <div class="mini"  title="tesst">class为mini,title为tesst</div>
  </div>


  <div style="display:none;"  class="none">style的display为"none"的div</div>
  
  <div class="hide">class为"hide"的div</div>
  
  <span id="mover">正在执行动画的span元素.</span>
</body>
</html>

3、串联

l  将多条语句,改成一条。(得瑟代码)


A.add(B) 将A和B组合一个对象。类型 $("A,B")

andSelf() :将之前对象添加到操作集合中

       A.children().andSelf() 

     A     孩子   孩子和A

end() :回到最近的一个"破坏性"操作之前

       A.children().children().end().end() 

       A   孩子   孙子        孩子 A

--------------------

contents() 获得所有的子节点(子元素 和 文本)


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>05-可见性过滤选择器.html</title>
 <!--   引入jQuery --> 
 <script src="../js/jquery-1.8.3.js" type="text/javascript"></script>
 <script src="./script/assist.js" type="text/javascript"></script>
 <link rel="stylesheet" type="text/css" href="./css/style.css" />   
  <script type="text/javascript">
  	$(document).ready(function(){
//  <input type="button" value=" 选择 id=one和two 的div"  id="b1"/>
		$("#b1").click(function(){
			$("#one").add("#two").css("background-color","#ff0");
		});
//  <input type="button" value=" 选择id=one 所有的孩子,以及one自己"  id="b2"/>
		$("#b2").click(function(){
			$("#one").children().andSelf().css("background-color","#ff0");
//			$("#one").children().add("#one").css("background-color","#ff0");
		});
//  <input type="button" value=" 选择id=one 所有的孩子,设置颜色为红,设置one自己为黄"  id="b3"/>
		$("#b3").click(function(){
//			$("#one").children().css("background-color","#f00").end().css("background-color","#ff0");
			$("#one").children().css("background-color","#f00").parent().css("background-color","#ff0");
			$("#one").css("background-color","#ff0").children().css("background-color","#f00");
		});
//  <input type="button" value=" 获得id=two 子节点个数"  id="b4"/>	
		$("#b4").click(function(){
			alert($("#two").contents().length);
		});
});
  
  </script>
</head>
<body>
  <h3>可见性过滤选择器.</h3>
  <button id="reset">手动重置页面元素</button>
  <input type="checkbox" id="isreset" checked="checked"/><label for="isreset">点击下列按钮时先自动重置页面</label>
  <br/><br/>
  <input type="button" value=" 选择 id=one和two 的div"  id="b1"/>
  <input type="button" value=" 选择id=one 所有的孩子,以及one自己"  id="b2"/>
  <input type="button" value=" 选择id=one 所有的孩子,设置颜色为红,设置one自己为黄"  id="b3"/>
  <input type="button" value=" 获得id=two 子节点个数"  id="b4"/>
  <br /><br />
  
  <!--文本隐藏域-->
 <input type="hidden" value="hidden_1">
 <input type="hidden" value="hidden_2">
 <input type="hidden" value="hidden_3">
 <input type="hidden" value="hidden_4">
  
  <div class="one" id="one" >
 id为one,class为one的div
      <div class="mini">class为mini</div>
  </div>

    <div class="one"  id="two" title="test" >
	 id为two,class为one,title为test的div.
      <div class="mini"  title="other">class为mini,title为other</div>
      <div class="mini"  title="test">class为mini,title为test</div>
  </div>

  <div class="one">
      <div class="mini">class为mini</div>
      <div class="mini">class为mini</div>
	  <div class="mini">class为mini</div>
	  <div class="mini"  title="tesst">class为mini,title为tesst</div>
  </div>


  <div style="display:none;"  class="none">style的display为"none"的div</div>
  
  <div class="hide">class为"hide"的div</div>
  
  <span id="mover">正在执行动画的span元素.</span>
</body>
</html>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值