jquery 中多條件選擇器,相對選擇器,層次選擇器的區別

一、Jquery常用的過濾選擇器如下所示:
1、:first,選取第一個元素,比如$("p:first")選取第一個p元素
2、:last,選取最後一個元素,比如$("p:last")選取最後一個p元素
3、:not(選擇器),選取不滿足“選擇器”條件的元素,比如$("p:not(.className)"),選取樣式不是className的所有p元素
4、:even/:odd,選取索引為偶數/奇數的元素,比如$("p:even"),選取索引號為偶數的所有p元素
5、:eq(索引序號)/:gt(索引序號)/:lt(索引序號),選取等於索引號/大於索引號/小於索引號的元素,比如$("p:lt(3)"),選取索引號小於3的所有p元素
註意:
過濾選擇器的混合使用時要記住後面的過濾條件是以前面的過濾選擇器過濾後的重新序號為基礎,即過濾的逐級性,比如
$("#t1 tr:gt(0):lt(3)").css("fontSize", "28"); //lt(3)是從gt(0)出的新序列中的序號,不要寫成lt(4)
二,重點
多條件選擇器
多條件選擇器:$("p,p,span,menuitem"),同時選擇p標簽,p標簽,和擁有menuitem樣式的span標簽元素
註意選擇器表達式中的空格不能多不能少,易錯!
相對選擇器
隻要在$()指定第二個參數,第二個參數為相對的元素。比如html代碼如下

代碼如下:

<table id="table1">
<tr><td>dsds</td><td>dsfdef</td></tr>
<tr><td>dsds</td><td>dsfdef</td></tr>
<tr><td>dsds</td><td>dsfdef</td></tr>
<tr><td>dsds</td><td>dsfdef</td></tr>
<tr><td>dsds</td><td>dsfdef</td></tr>
</table>

那麼可以用如下的js代碼操作td的背景色
$("td", $(this)).css("background", "red"),這句代碼用的就是相對選擇器,選擇出的td是以當前的tr為相對的元素。選擇的td元素是當前的tr元素下的所有td元素,沒有涉及到其他行的td元素

代碼如下:

<script type="text/javascript">
$(function () {
$("#table1 tr").click(function () {
$("td", $(this)).css("background", "red");
});
});
</script>

層次選擇器:
1 $("#p li")獲取p下的所有li元素(後代,子,子的子….)
2 $("#p > li")獲取p下的直接li子元素//註意空格
3 $(".menuitem + p")獲取樣式名為menuitem之後的第一個p元素,不常用。
3 $(".menuitem ~ p")獲取樣式名為menuitem之後的所有的p元素,不常用。
細節區別在於(易錯點):
多條件選擇器:$("p,p,span,menuitem"),相對選擇器:$("td", $(this)).css("background", "red")",層次選擇器:$("#p li")獲取p下的所有li元素(後代,子,子的子….)
三者的區別是:
多條件選擇器:在一個“”內有逗號區分,
相對選擇器:2個元素分開 ,
層次選擇器在一個“”內以空格區分。

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *