jQuery 常見選擇器及 api 用法

選擇器

基本選擇器
$('*') 匹配頁面所有元素
$('#id') id選擇器
$('.class') 類選擇器
$('element') 標簽選擇器
組合/層次選擇器
$('E,F') 多元素選擇器,用”,分隔,同時匹配元素E或元素F
$('E F') 后代選擇器,用空格分隔,匹配E元素所有的后代(不只是子元素、子元素向下遞歸)元素F
$(E>F) 子元素選擇器,用”>”分隔,匹配E元素的所有直接子元素
$('E+F') 直接相鄰選擇器,匹配E元素之后相鄰同級元素F
$('E~F') 普通相鄰選擇器(弟弟選擇器),匹配E元素之后同級元素F(無論直接相鄰與否)
$('.class1.class2') 匹配類名中既包含class1又包含class2的元素
基本過濾選擇器
$("E:first") 所有E中的第一個
$("E:last") 所有E中的最后一個
$("E:not(selector)") 按照selector過濾E
$("E:even") 所有E中index是偶數
$("E:odd") 所有E中index是奇數
$("E:eq(n)") 所有E中index為n的元素
$("E:gt(n)") 所有E中index大于n的元素
$("E:lt(n)") 所有E中index小于n的元素
$(":header") 選擇h1~h6 元素
$("div:animated") 選擇正在執行動畫效果的元素
內容過濾器
$('E:contains(value)') 內容中包含value值的元素
$('E:empty') 內容為空的元素
$('E:has(F)') 子元素中有F的元素,$('div:has(a)'):包含a標簽的div
$('E: parent') 父元素是E的元素,$('td: parent'):父元素是td的元素
可視化選擇器
$('E:hidden') 所有被隱藏的E
$('E:visible') 所有可見的E
屬性過濾選擇器
$('E[attr]') 含有屬性attr的E
$('E[attr=value]') 屬性attr=value的E
$('E[attr !=value]') 屬性attr!=value的E
$('E[attr ^=value]') 屬性attr以value開頭的E
('E[attr=value]') 屬性attr以value結尾的E
$('E[attr *=value]') 屬性attr包含value的E
$('E[attr][attr *=value]') 可以連用
子元素過濾器
$('E:nth-child(n)') E的第n個子節點
$('E:nth-child(3n+1)') E的index符合3n+1表達式的子節點
$('E:nth-child(even)') E的index為偶數的子節點
$('E:nth-child(odd)') E的index為奇數的子節點
$('E:first-child') 所有E的第一個子節點
$('E:last-child') 所有E的最后一個子節點
$('E:only-child') 只有唯一子節點的E的子節點
表單元素選擇器
$('E:type') 特定類型的input
$(':checked') 被選中的checkbox或radio
$('option: selected') 被選中的option

簡直就是復習CSS選擇器有木有,正是得益于此,開發者在眾多js庫中迅速青睞于jQuery,看個圖方便記憶

除了使用選擇器jQuery還提供了一些方法幫助我們查找當前元素相關元素

.eq(index), .get([index])

對于一個特定結果集,我們想獲取到指定index的jQuery對象,可以使用eq方法

$('div').eq(3); // 獲取結果集中的第四個jQuery對象

我們可以通過類數組下標的獲取方式或者get方法獲取指定index的DOM對象,也就是我們說的jQuery對象轉DOM對象

$('div')[2];
$('div').eq(2);

get()不寫參數把所有對象轉為DOM對象返回

兄弟元素獲取

.next([selector]), .prev([selector])

next取得匹配的元素集合中每一個元素緊鄰的后面同輩元素的元素集合。如果提供一個選擇器,那么只有緊跟著的兄弟元素滿足選擇器時,才會返回此元素。prev正好相反,獲取元素之前的同輩元素

$('.test').next();
$('.test').prev('li');

.nextAll([selector]), .prevAll([selector])

nextAll獲得每個匹配元素集合中每個元素所有后面的同輩元素,選擇性篩選的選擇器,prevAll與之相反,獲取元素前面的同輩元素

.siblings([selectors])

獲得匹配元素集合中每個元素的兄弟元素,可以提供一個可選的選擇器

$('li.third-item').siblings()

父子元素獲取

.parent([selector])

取得匹配元素集合中,每個元素的父元素,可以提供一個可選的選擇器

$('li.item-a').parent()

.parents([selector])

獲得集合中每個匹配元素的祖先元素,可以提供一個可選的選擇器作為參數

$('li.item-a').parents('div')

.children([selector])

獲得匹配元素集合中每個元素的子元素,選擇器選擇性篩選

$('ul.level-2').children()

.find([selector])

查找符合選擇器的后代元素

$('ul').find('li.current');

篩選當前結果集

.first()

獲取當前結果集中的第一個對象

.last()

獲取當前結果集的最后一個對象

.filter(selector), .filter(function(index))

篩選當前結果集中符合條件的對象,參數可以是一個選擇器或者一個函數

$('li').filter(':even')

$('li').filter(function(index) {
  return index % 3 == 2;
})

.not(selector), .not(function(index))

從匹配的元素集合中移除指定的元素,和filter相反

.is(selector), is(function(index)), is(dom/jqObj)

判斷當前匹配的元素集合中的元素,是否為一個選擇器,DOM元素,或者jQuery對象,如果這些元素至少一個匹配給定的參數,那么返回true

    if ( $target.is("li") ) {
    $target.css("background-color", "red");
  }

.has(selector), .has(dom)

篩選匹配元素集合中的那些有相匹配的選擇器或DOM元素的后代元素

$('li').has('span')
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 概要 64學時 3.5學分 章節安排 電子商務網站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,298評論 0 3
  • jQuery模塊 選擇器、DOM操作、事件、AJAX與動畫 匿名函數自執行 作用:解決命名空間與變量污染的問題 總...
    青青玉立閱讀 908評論 0 0
  • (續jQuery基礎(1)) 第5章 DOM節點的復制與替換 (1)DOM拷貝clone() 克隆節點是DOM的常...
    凜0_0閱讀 1,361評論 0 8
  • 第一章 認識jQuery jQuery 能做什么 1. 取得文檔中的元素 2. 修改頁面的外觀 CSS雖然為影響文...
    七弦桐語閱讀 492評論 0 1
  • 一、樣式篇 第1章 初識jQuery (1)環境搭建 進入官方網站獲取最新的版本 http://jquery.co...
    凜0_0閱讀 3,451評論 0 44