一步一步學習 JQuery (二) 選擇器: 基本選擇器 && 層次選擇器
阿新 • • 發佈:2019-01-05
選擇器是 jQuery 的根基, 在 jQuery 中, 對事件處理, 遍歷 DOM 和 Ajax 操作都依賴於選擇器
jQuery 選擇器的優點:
二、層次選擇器
jQuery 選擇器的優點:
簡潔的寫法
完善的事件處理機制
一、基本選擇器
基本選擇器是 jQuery 中最常用的選擇器, 也是最簡單的選擇器, 它通過元素 id, class 和標籤名來查詢 DOM 元素(在網頁中 id 只能使用一次, class 允許重複使用).
改變 id 為 one 的元素的背景色為 # bbffaa
改變 class 為 mini 的所有元素的背景色為 # bbffaa
改變元素名為 <div> 的所有元素的背景色為 # bbffaa
改變所有元素的背景色為 # bbffaa
改變所有的<span>元素和 id 為 two 的元素的背景色為 # bbffaa
示例:
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Untitled Document</title> <style type="text/css"> div, span, p { width: 140px; height: 140px; margin: 5px; background: #aaa; border: #000 1px solid; float: left; font-size: 17px; font-family: Verdana; } div.mini { width: 55px; height: 55px; background-color: #aaa; font-size: 12px; } div.hide { display: none; } </style> <!-- 匯入 jQuery 庫 --> <script type="text/javascript" src="jquery-1.9.1.js"></script> <script type="text/javascript"> $(function(){ //點選ID為btn1 按鈕,點亮 ID 為 one 的DIV區域 $("#btn1").click(function(){ $("#one").css("background","#ffeeaa");//css() 更改 其css 屬性值 的函式 }); $("#btn2").click(function(){ $(".mini").css("background","#ffeeaa");//css() 更改 其css 屬性值 的函式 }); $("#btn3").click(function(){ $("div").css("background","#ffeeaa");//css() 更改 其css 屬性值 的函式 }); $("#btn4").click(function(){ $("*").css("background","#ffeeaa");//css() 更改 其css 屬性值 的函式 }); $("#btn5").click(function(){ $("span,#two").css("background","#ffeeaa");//css() 更改 其css 屬性值 的函式 }); }) </script> </head> <body> <input type="button" value="選擇 id 為 one 的元素" id="btn1" /> <input type="button" value="選擇 class 為 mini 的所有元素" id="btn2" /> <input type="button" value="選擇 元素名是 div 的所有元素" id="btn3" /> <input type="button" value="選擇 所有的元素" id="btn4" /> <input type="button" value="選擇 所有的 span 元素和id為two的元素" id="btn5" /> <br><br> <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"></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> <div> 包含input的type為"hidden"的div<input type="hidden" size="8"> </div> <span id="span">^^span元素^^</span> </body> </html>
二、層次選擇器
如果想通過 DOM 元素之間的層次關係來獲取特定元素, 例如後代元素, 子元素, 相鄰元素, 兄弟元素等, 則需要使用層次選擇器.
注意: (“prev ~ div”) 選擇器只能選擇 “# prev ” 元素後面的同輩元素; 而 jQuery 中的方法 siblings() 與前後位置無關, 只要是同輩節點就可以選取
改變 <body> 內所有 <div> 的背景色為 # bbffaa
改變 <body> 內子 <div> 的背景色為 # bbffaa
改變 id 為 one 的下一個 <div> 的背景色為 # bbffaa
改變 id 為 two 的元素後面的所有兄弟<div>的元素的背景色為 # bbffaa
改變 id 為 two 的元素所有 <div> 兄弟元素的背景色為 # bbffaa
示例:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Untitled Document</title>
<style type="text/css">
div, span, p {
width: 140px;
height: 140px;
margin: 5px;
background: #aaa;
border: #000 1px solid;
float: left;
font-size: 17px;
font-family: Verdana;
}
div.mini {
width: 55px;
height: 55px;
background-color: #aaa;
font-size: 12px;
}
div.hide {
display: none;
}
</style>
<script type="text/javascript" src="jquery-1.9.1.js"></script>
<script type="text/javascript">
$(function(){
$("#btn1").click(function(){
$("body div").css("background","#ffddaa");
});
//只選擇孩子,孫子不算
$("#btn2").click(function(){
$("body > div").css("background","#ffddaa");
});
$("#btn3").click(function(){
$("#one + div").css("background","#ffddaa");//必須直接相鄰
});
$("#btn4").click(function(){
$("#two ~ div").css("background","#ffddaa");
});
$("#btn5").click(function(){
$("#two").sibling("div").css("background","#ffddaa");
});
$("#btn6").click(function(){
//$("#one + span").css("background", "#ffbbaa");無效因為span 不與one直接相鄰
$("#one").nextAll("span:first").css("background","#ffddaa");
});
$("#btn7").click(function(){
$("#two").prevAll("div").css("background","#ffddaa");
});
})
</script>
</head>
<body>
<input type="button" value="選擇 body 內的所有 div 元素" id="btn1" />
<input type="button" value="在 body 內, 選擇子元素是 div 的." id="btn2" />
<input type="button" value="選擇 id 為 one 的下一個 div 元素" id="btn3" />
<input type="button" value="選擇 id 為 two 的元素後面的所有 div 兄弟元素" id="btn4" />
<input type="button" value="選擇 id 為 two 的元素所有 div 兄弟元素" id="btn5" />
<input type="button" value="選擇 id 為 one 的下一個 span 元素" id="btn6" />
<input type="button" value="選擇 id 為 two 的元素前邊的所有的 div 兄弟元素" id="btn7" />
<br><br>
<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"></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>
<div>
包含input的type為"hidden"的div<input type="hidden" size="8">
</div>
<span id="span">^^span元素^^</span>
<span id="span">--span元素--</span>
</body>
</html>