由于這種機制,使用jQuery檢查某個元素在網頁中是否存在時不能使用:
if($(".demo")){ // do something}
而是應該根據獲取到的長度來判斷:
if($(".demo").length>0){ // do something}
或者是轉為DOM判斷。
最常用的選擇器,通過元素id、class和標簽名等查找DOM元素。
| 選擇器 | 描述 | 返回 | 示例 | 
| #id | 通過id匹配 | 單個元素 | $("#id") | 
| .class | 通過類名匹配 | 集合元素 | $(".class") | 
| element | 通過元素名匹配 | 集合元素 | $("element") | 
| * | 匹配所有元素 | 集合元素 | $("*") | 
| selector1,selector2,……,selectorN | 群組選擇器 | 集合元素 | $("div,span,p") | 
通過DOM元素之間的層次關系獲取特定元素例如:后代元素、子元素、相鄰元素和同輩元素等。
對于$("prev+next")選擇器一般用next()方法代替,對于$("prev~siblings")一般用nextAll()方法代替。
通過特定的過濾規則篩選所需的DOM元素,選擇器已:開頭(與css偽類選擇器相似)。按照過濾原則可分為:
| 選擇器 | 描述 | 返回 | 示例 | 
| :first | 獲取第一個元素 | 單個元素 | $("div:first") | 
| :last | 獲取最后一個元素 | 單個元素 | $("div:last") | 
| :not(selector) | 去掉selector以外的元素 | 集合元素 | $("div:not(.demo)") | 
| :even | 選取索引是偶數的元素,索引從0開始 | 集合元素 | $("input:even") | 
| :odd | 選取索引是奇數的元素,索引從0開始 | 集合元素 | $("input:odd") | 
| :eq(index) | 選取所有等于index的元素(index從0開始) | 單個元素 | $("div:eq(0)") | 
| :gt(index) | 選取所有大于index的元素(index從0開始) | 集合元素 | $("div:gt(0)") | 
| :lt(index) | 選取所有小于index的元素(index從0開始) | 集合元素 | $("div:lt(0)") | 
| :header | 選取所有標題元素例如:h1,h2等 | 集合元素 | $(":header") | 
| :animated | 選取正在動畫的元素 | 集合元素 | $("div:animated") | 
| :focus | 選取獲得焦點的元素 | 集合元素 | $(":focus") | 
在使用:even、:odd、:eq()、:gt()、:lt()等選擇器是一定要注意下標問題
2.內容過濾選擇器 過濾規則主要是它包含的子元素和文本
| 選擇器 | 描述 | 返回 | 示例 | 
| :contains(text) | 包含文本為text的元素 | 集合元素 | $("div:contains('text')") | 
| :empty | 選取沒有文本或子元素的空元素 | 集合元素 | $("div:empty“) | 
| :has(selector) | 選取含有se;ector的元素 | 集合元素 | $("div:has(p)") | 
| :parent | 選取含有文本或子元素的元素 | 集合元素 | $("div:parent") | 
      3.可見性過濾選擇器  根據元素的可見和不可見狀態選擇相應元素
| 選擇器 | 描述 | 返回 | 示例 | 
| :hidden | 選取不可見元素 | 集合元素 | $(":hidden") | 
| :visible | 選取可見元素 | 集合元素 | $(":visible") | 
對于:hidden選擇器,不僅可以選擇display:none的元素,也可以選擇visibility:hidden和文本隱藏域等元素。
4.屬性過濾選擇器 根據元素屬性獲取相應元素
| 選擇器 | 描述 | 返回 | 示例 | 
| [attribute] | 選取有此屬性的元素 | 集合元素 | $("div[id]") | 
| [attribute=value] | 選取屬性值為value的元素 | 集合元素 | $("div[id=test]") | 
| [attribute!=value] | 選取屬性值不為value的元素 | 集合元素 | $("div[id!=test]") | 
| [attribute^=value] | 選取屬性值以value開頭的元素 | 集合元素 | $("div[id^=test]") | 
| [attribute$=value] | 選取屬性值以value結束的元素 | 集合元素 | $("div[id$=test]") | 
| [attribute*=value] | 選取屬性值含有value的元素 | 集合元素 | $("div[id*=test]") | 
| [attribute|=value] | 選取屬性值為等于value或者以value為前綴的元素 | 集合元素 | $("div[id|=test]") | 
| [attribute~=value] | 選取屬性值空格分隔的值中有value的元素 | 集合元素 | $("div[id~=test]") | 
| [attribute1][attribute2][attributeN] | 選取有給定的多個屬性的元素 | 集合元素 | $("div[id=test][class]") | 
5. 子元素過濾選擇器
| 選擇器 | 描述 | 返回 | 示例 | 
| :nth-child() | 選取每個父元素下的給定條件的元素(index從1開始) | 集合元素 | $("div:nth-child") | 
| :first-child | 選取每個父元素的第一個元素 | 集合元素 | $("div:first-child") | 
| :last:child | 選取每個父元素的最后一個元素 | 集合元素 | $("div:last-child") | 
| :only:child | 選取只有一個子元素的父元素 | 集合元素 | $("div:only-child") | 
eq(index)只匹配一個元素,而nth-child將為每一個符合條件的父元素匹配子元素。同時nth-child()的index從1開始,eq()從0開始。同理,:first和:first-child、:last和last:child也類似。
6.表單對象屬性過濾選擇器
| 選擇器 | 描述 | 返回 | 示例 | 
| :enabled | 選取可用元素 | 集合元素 | $("#form1:enabled") | 
| :disabled | 選取不刻意元素 | 集合元素 | $("#form1:disabled") | 
| :checked | 選取被選中元素(單選框、復選框) | 集合元素 | $("input:checked") | 
| :selected | 選取所有被選中的選項元素(下拉列表) | 集合元素 | $("input:selected") | 
| 選擇器 | 描述 | 返回 | 示例 | 
| :input | 選取所有input、textarea、select、button元素 | 集合元素 | $("input") | 
| :text | 選取單行文本框 | 集合元素 | $(":text") | 
| :passWord | 選取密碼框 | 集合元素 | $(":password") | 
| :radio | 選取單選按鈕 | 集合元素 | $(":radio") | 
| :checkbox | 選取復選框 | 集合元素 | $(":checkbox") | 
| :submit | 選取提交按鈕 | 集合元素 | $(":submit") | 
| :image | 選取圖片按鈕 | 集合元素 | $(":image") | 
| :reset | 選取復位按鈕 | 集合元素 | $(":reset") | 
| :button | 選取按鈕 | 集合元素 | $(":button") | 
| :file | 選取上傳域 | 集合元素 | $("file") | 
| :hidden | 選取不可見元素 | 集合元素 | $(":hidden") | 
新聞熱點
疑難解答