JQ 的 DOM 存取方式是透過 selector 來達到索引目標,會先轉換為 jQuery 之元件來取得後續行為。選取元件的方式範圍廣泛,主要概念採用了同於 CSS 的層級觀念。
基本的選擇器寫法:
$(selector)
selector 為文字串格式,方式如下:
selector 可以是全部,tagName,id,class…也能多選 selector,像是#one,#two 這樣同時多種不同對象合併選取,也能將外部的自身物件用 this 指定
selector(選取) | 說明 |
---|---|
$(“*”) | 所有的 HTML 都列入選取 |
$(“p”) | 找到 element 為 p 標籤之選取 |
$(“#header”) | 找到 id 為”header”之選取 |
$(“.hot”) | 找到 class 為”myclass”之選取 |
$(“#one,#two”) | 多選 (or) 對象,譬如找#one 或#two,使一起共同選擇 |
$(“#one”).add(“#two”) | 多選 (or) 對象,譬如找#one 或#two,使一起共同選擇 |
$(this) | 同 JavaScript 觀念,傳入前一個外部元件的本體 |
用CSS的選擇器為觀念,使用節點層級做選取,彈性容易取得
選取的層級觀念 | 說明 |
---|---|
$(“h1#header”) | 找到該 h1 且 id=header |
$(“ul li”) | 找到該 ul 位置之子孫層級的標籤 li |
$(“ul>li”) | 找到該 ul 位置之子層級的標籤 li |
多筆結果下,能進行不同過濾篩選條件
篩選條件 | 說明 |
---|---|
$(“li:not(.hot)”)、$(“li”).not(“.hot”) | 找到 li 標籤對象且該標籤不能有.hot |
$(“li:first”)、$(“li”).first() | 找到 li 標籤對象之第一筆 |
$(“li:last”)、$(“li”).last() | 找到 li 標籤對象之最後筆 |
$(“li:even”) | 找到 li 標籤對象之偶數筆 |
$(“li:odd”) | 找到 li 標籤對象之奇數筆 |
$(“li:eq(n)”)、$(“li”).eq(n) | 找到 li 標籤對象之第 n 筆,初值=0 |
$(“li:contains(‘我’)”) | 找到 li 標籤內含文字”我”之選取 |
$(“ul:has(li)”)、$(“ul”).has(“li”) | 找到 ul 標籤且持有 li 之選取(取 ul) |
能根據 tag 裡面的屬性 (attr) 做選取,透過多種比較式去檢查布林條件
篩選依屬性 | 說明 |
---|---|
$(“input[type=button]”) | 找到 input 標籤且 type 為 button |
$(“input[type!=button]”) | 找到 input 標籤且 type 不是 button |
$(“input[value^=aa]”) | 找到 input 標籤且 value 開頭為 aa |
$(“input[value$=aa]”) | 找到 input 標籤且 value 結尾為 aa |
$(“input[value*=aa]”) | 找到 input 標籤且 value 中間為 aa |
$(“input[value/=aa]”) | 找到 input 標籤且 value 開頭為aa- |
$(“input[type=button][value=”is loki”]”) | 找到符合多筆屬性值 |
tagName 是 input 相關的互動表單型,能透過:type 去找到,也包含 checked 或 selectd 性質
選擇為表單類型 | 說明 |
---|---|
$(“:input”) | 所有輸入項目都中 |
$(“:text”) | 所有 input:text 都中 |
$(“:checked”) | 所有被勾選 checked 的都中 |