DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> jQuery入門知識 >> JQuery特效代碼 >> 跟著Jquery API學Jquery之一 選擇器
跟著Jquery API學Jquery之一 選擇器
編輯:JQuery特效代碼     
有了Jquery的選擇器,吃飯飯飯香,身體倍棒……
1.基本
我們知道jquery最常用的就是選擇器了,我們看一下jqueryAPI中的 選擇器—基本中有5種情況 class ,id ,element, *,還有一個多選擇器,這裡我們想一下css樣式的寫法
css樣式也有幾種情況:1.類樣式 2.id樣式 3.標簽樣式,
如果有一個aa的類 ,那麼我們定義aa的樣式就要寫成 .aa{}
如果有一個bb的id,那麼我們定義bb的樣式就要寫成 #bb{}
如果有標簽<div></div>,那麼我們定義的樣式就寫成 div{}
如果我們要定義所有的標簽樣式,那我們就寫成 *{} (當然這樣簡寫不太好)
如果我們要定義多個標簽之類的就用分號來分開 比如 .aa,#bb,div{} 就定義了 class為aa,id為bb,標簽為div的樣式了。
我們看到上面5個如果 ,在和jquery的5個基本的選擇器對比一下
如果我們要選擇一個aa的類就寫成 $(“.aa”)
如果我們要選擇一個bb的id就寫成$(“#bb”)
如果我們要選擇div的標簽就寫成$(“div”)
如果我們要選擇所有就寫成 $(“*”)
如果我們要選擇多個對象就寫成 $ (“.aa,#bb,div”)
對比一下,發現基本的選擇器完全是按在css的語法在操作,是不是很容易呢
2層次
我們現在知道了上面5個選擇器的寫法之後,現在我們來考慮如果對層次做選擇器,
先想一下什麼是層次,其實說的就是 HTML的DOM結構 一層一層的,或者說XML的結構層次
那我們就打開jquery的Api ,發現有4個關於層次的選擇器。
歸納一下就是 a空格b,a>b ,a+b,a~b 當然我這裡只是為了少打幾個字而已,
比如有如下的一個結構
代碼如下:
<div>
<div class="bb">
<span>1<span><span>2<span>
</div>
<span>3<span>
<div class=”cc” ></div>
<span>4<span>
</div>

我們現在想選擇id為aa節點下所有的span節點 ,就用 $(“#aa span”)
我們現在想選擇id為aa節點下第一層的span 就是span中文本為 3,4的兩個,就用 $(“#aa >span”)
我們現在想得到跟在class為bb後的那個span 就是span中文本為3的那個,就用$(“.bb+span”)
現在我們想得到class為bb後所有的span 就用$(“.bb~span”)
總結一下:第一個的寫法還是css樣式的寫法一樣 用空格表示節點下的元素
第二個用>來表示子節點,和空格不同的是它只作用在第一層
第三個第四個都是用來表示跟隨節點,只不過不同的是用+號表示緊接著的用~表示所有跟隨的 我們是需要記住 (空格 > + ~ )四個符號就可以了
3簡單
我們知道了基本的選擇器和層次的選擇器,有時候我們選擇出的是多個比如
代碼如下:
<ul>
<li id='aa'>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>

我們想得到ul li的第一個(first) ,最後一個(last),基數行(odd),偶數行(even)匹配第三個(eq(2)),匹配大於2行(gt(1)),匹配小於第三行(lt(2)),這裡說了7個那麼我們要怎麼來寫這個選擇器呢,比如匹配第一個$(“ul li:first”) ,匹配第三個$(“ul li:eq(2)”) ,其他的就不寫了
這裡我們想一下css中 a鏈接的幾種樣式的的寫法 a:hover a:link ……是不是一樣呢
好了 這裡我們看了7種,在看看api 還有3種是什麼呢,
1 :not 去除所有與給定選擇器匹配的元素 語法一樣 $(“ul li:not(#aa)”) 意思是去掉在ul li裡面的含有id為aa的元素元素 我們用$(“ul li”)能夠得到4個li 用 $(“ul li:not(#aa)”)就去掉了第一個li 只得到了三個
2:header 只是用來選擇h1 h2 h3 ……這樣的標題
3:animated匹配執行動畫的元素
還是總結一下,上面的這幾個其實就是對已經選擇出來的在一次的做篩選。建立在基礎和層次上面。
4 文本 可見性
繼續往下看api,文本中有4個函數,當然功能還是對已經選擇出來的內容做再次的篩選
上面是對節點的篩選,現在我們要對內容篩選
代碼如下:
<div><a>xxiu</a> </div>
<div>xxiu zhang </div>
<div>zhang </div>
<div></div>

包含指定文本 $("div:contains(xxiu)") 我們希望我們所選擇的div的文本中含有xxiu這個字符串
匹配空文本 $("div:empty") 第四個div節點下什麼都沒有,就匹配它了
匹配含有某個節點的元素 匹配含有a節點的div $(“div:has(a)”)
匹配不為空文本的和2剛好相反 $(“div:parent”) 就匹配了前三個div
總結一下 文本匹配主要是做了 文本(1)和節點匹配(3) ,和匹配無文本或節點(2) 匹配有文本節點(4),兩句話:有沒有文本或節點,有什麼文本和節點
然後我們在看一下可見性,可見性很容易理解就兩種情況 可見:hidden選擇可見節點或不可見:visible選擇不可見節點,沒什麼好說的
5 屬性選擇器
我們先看看最基本的屬性選擇器
代碼如下:
<div id=”aa” name=”zhang”>zhang </div>
<div name=”zhangxxiu”>asdf</div>
<div id=”bb” name=”xxiu”>xxiu </div>

如上面的節點,我們想選擇含有id的節點,我們如果用以前的方法要怎麼做呢。
用多選擇方式 $(“#aa,#bb”) 得到了我們想要的,但是如果有N個,那不是要跟很長嗎,我們都是很懶的,於是就有了屬性選擇器 $(“div[id]”)就得到了我們想要的結果,對name做選擇$(“div[name]”) 但是我們只想得到name為xxiu的 那我們就用$(“div[name ='zhang']”)
得到不為zhang的$(“div[name !='zhang']”),得到以zh開始的$(“div[name ^='zh']”)
以xxiu結尾的$(“div[name $='zhang']”),包含ang的$(“div[name *='ang']”)
或者是有id且包含xxiu的$(“div[id][name *='xxiu']”)
好,看了上面一對東西,肯定是有點暈了,總結一下
1 有什麼[id] 等於什麼[id='aa'] 不等於什麼[id!='aa']
2 以什麼開始 ^= 以什麼結束$= 匹配什麼 *= (完全是正則表達式的語法嗎)
3 多屬性選擇 $(“div[id][name *='xxiu']”)
6 子元素
1匹配子元素中的第一個$("ul li:first-child") 最後一個$("ul li:last-child")
2 匹配在子元素中是唯一的$("ul li:only-child")
3匹配對於的元素$("ul li:nth-child(2)") 和$(“ul li:eq(1)”)一樣,前者是從1開始計數,後者是從0開始計數
7表單
看看就知道是input中幾種表單 $(“:text”) 得到文本表單 $(“:checkbox”) 得到復選表單等等 看看API就知道是怎麼個回事了
我們用前面的選擇方式 可以這樣寫$(“input[type='text']”) 但是少打幾個字總比多大幾個要好,$(“:text”)這樣寫是不是清爽的多呢
8 表單屬性
1 可用 enabled和不可用 disabled
找出
2 被選中checked 和選擇selected
好到這裡 所有的API都過了一遍,對選擇器基本上就差不多了,差的就是自己去寫幾句代碼玩玩。本文中沒有代碼,只是對API歸納一下,如果要看代碼,看Jquery文檔就可以了
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved