層級選擇器
文檔中的所有的節點之間都是有這樣或者那樣的關係。我們可以把節點之間的關係可以用傳統的家族關係來描述,可以把文檔樹當作一個家譜,那麼節點與節點直接就會存在父子,兄弟,祖孫的關係了。
選擇器中的層級選擇器就是用來處理 子元素 後代元素 兄弟元素 相鄰元素這種關係的
通過一個列表,對比層級選擇器的區別
具體實現我們看一下下面代碼
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title></title>
<link rel="stylesheet" href="imooc.css" type="text/css">
<script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>
</head>
<body>
<h2>子選擇器與後代選擇器</h2>
<div class="left">
<div class="aaron">
<p>div下的第一個p元素</p>
</div>
<div class="aaron">
<p>div下的第一個p元素</p>
</div>
</div>
<div class="right">
<div class="imooc">
<article>
<p>div下的article下的p元素</p>
</article>
</div>
<div class="imooc">
<article>
<p>div下的article下的p元素</p>
</article>
</div>
</div>
<script type="text/javascript">
//子選擇器
$('div > p') 選擇所有div元素裏面的第一個子元素P
$('div > p').css("border", "1px groove red");
</script>
<script type="text/javascript">
//後代選擇器
$('div p') 選擇所有div元素裏面的p元素
$('div p').css("border", "1px groove red");
</script>
<h2>相鄰兄弟選擇器與一般兄弟選擇器</h2>
<div class="bottom">
<div>兄弟節點div, +~選擇器不能向前選擇</div>
<span class="prev">選擇器span元素</span>
<div>span後第一個兄弟節點div</div>
<div>兄弟節點div
<div class="small">子元素div</div>
</div>
<span>兄弟節點span,不可選</span>
<div>兄弟節點div</div>
</div>
<script type="text/javascript">
//相鄰兄弟選擇器
//選取prev後面的第一個的div兄弟節點
$(.prev + div).css("border", "3px groove blue");
</script>
<script type="text/javascript">
//一般相鄰選擇器
//選取prev後面的所有的div兄弟節點
$(.prev ~ div).cs```
("border", "3px groove blue");
</script>
</body>
</html>
進一步詳細解釋:
$( "parent > child" ) 子選擇器:選擇所有指定“parent”元素中指定的"child"的直接子元素。 $("ancestor descendant") 後代選擇器:選擇給定的祖先元素的所有後代元素, 一個元素的後代可能是該元素的一個孩子,孫子,曾孫等 $("prev + next") 相鄰兄弟選擇器:選擇所有緊接在“prev”元素後的“next”元素 $("prev ~ siblings") 一般兄弟選擇器:匹配“prev”元素之後的所有 兄弟元素。具有相同的父元素,並匹配過濾“siblings”選擇器