JQuery學習3(JQuery過濾器)

1、JQuery過濾器簡介

jQuery過濾器是一系列簡單、實用的jQuery對象方法,對jQuery對象所包含元素進行再篩選的操作。

jQuery過濾方法主要有以下8種:

 (1)類過濾

類過濾是根據元素的類特性進行過濾操作,使用hasClass()方法進行類過濾。

hasClass(className)

className表示類名,該方法主要判斷jquery對象中的每個元素是否包含了指定類名。類過濾器僅僅是一個條件檢測,無法過濾出符合指定類名的元素。

應用舉例:實現鼠標點擊類名含有“red”的<div>標籤時,該標籤作用擺動。

<head>
<meta charset="utf-8">
<title>無標題文檔</title>
	<style type="text/css">

	</style>
	<link type="text/css" rel="stylesheet" href="style.css">
	<script src="jquery/jquery-3.4.1.js" type="text/javascript"></script>
	<script type="text/javascript">
		$(
			function(){   //界面始化函數
				$("div").click(function()//爲所有的div元素綁定單擊事件
							   {
					if($(this).hasClass("red"))//只有類名爲red的div元素才綁定系列動畫
						{
							$(this)
							.animate({left:120})
							.animate({left:240})
							.animate({left:0})
							.animate({left:240})
							.animate({left:120});
						}
				}
				);
			}
		)
	</script>
	<style type="text/css">
		div{position: absolute;width: 100px;height: 100px;}
		.blue{background: blue;left: 0px;}
		.red{background: red;left: 120px;  z-index: 2;}
		.green{background: green;left: 240px;}
		.pos{top: 120px;}
	</style>
</head>

<body>
	<div class="blue"></div>	
	<div class="red"></div>
	<div class="green"></div>
	<div class="red pos"></div> <!--red pos爲複合類,包含red和pos類-->
</body>	

 

(2)下標過濾器

下標過濾器可以精確找到jquery對象中指定下標位置的元素。

eq(index)

 index是一個整數值,從0開始。

 應用舉例:對上例進行修改,指定第二個div元素有動畫效果。

<script type="text/javascript">
		$(
			function(){   //界面始化函數
				$("div").eq(1).click(function()//爲第二個div元素綁定單擊事件
					   {
							$(this)
							.animate({left:120})
							.animate({left:240})
							.animate({left:0})
							.animate({left:240})
							.animate({left:120});
						}
				
				);
			}
		)
	</script>

(3)表達式過濾

filter()表達式過濾器可以接受字符串,也可以接收函數。

filter(expr | fn)

expr爲表達式字符串,fn爲函數

應用舉例:對上例進行設置

<script type="text/javascript">
		$(
			function(){   //界面始化函數
				$("div").filter(".red,.blue").css("background-color","red");//將div元素集合中過濾出包含red類和blue類的元素,並將其設爲紅色背景
			}
		)
	</script>

2、查找

jQuery查找用來查找父集、同級或下級相關元素。主要有16種。

 (1)向下查找

1)children()

該方法用於查找當前元素的所有或部分子元素(僅能查找子元素)

children([expr])

 expr表示表達式字符串,如果省略則匹配所有的資源。

<head>
<meta charset="utf-8">
<title>無標題文檔</title>
	<style type="text/css">

	</style>
	<link type="text/css" rel="stylesheet" href="style.css">
	<script src="jquery/jquery-3.4.1.js" type="text/javascript"></script>
	<script type="text/javascript">
		$(
			function(){   //界面始化函數
				$("#menu").children().css("text-decoration","underline");//查找ul元素的所有子元素
			}
		)
	</script>
	
</head>

<body>
	<ul id="menu">
		<li class="home">首頁</li>
		<li>公司介紹</li>
		<li>產品介紹</li>
		<li>技術服務</li>
		<li>招賢納士</li>
		<li>聯繫方式</li>
	</ul>
</body>	

 

 2)contents()

該方法不僅可以獲得子元素,還可以獲取文本節點和註釋節點等。

 3)find() 

該方法能夠查找所有後代元素。

 (2)向上查找

1)parents()

該方法能夠查找所有匹配元素的祖先元素。

parents([expr])

 expr省略將匹配所有元素的祖先元素。

3、串聯 

(1)合併jQuery對象

使用addBack()方法,可以將不同的jQuery對象合併在一起,最後爲他們定義統一的樣式。

應用舉例:使用find()方法獲取div標籤包含的p標籤,然後通過addBack()方法將兩個對象合併在一起。

<head>
<meta charset="utf-8">
<title>無標題文檔</title>
	<style type="text/css">

	</style>
	<link type="text/css" rel="stylesheet" href="style.css">
	<script src="jquery/jquery-3.4.1.js" type="text/javascript"></script>
	<script type="text/javascript">
		$(
			function(){   //界面始化函數
				$("div").find("p").addBack().css({"border":"solid 1px red","margin":"1px"});//將div和p對象鏈接在一起,爲他們定義相同的樣式
			}
		)
	</script>
	
</head>

<body>
	<div>
		<p>窗前明月光</p>
		<p>疑是地上霜</p>
	</div>
</body>	

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章