jQuery介紹和選擇器

jQuery


來源饑人谷課件赠潦,轉(zhuǎn)載請注明出處


jQuery介紹

jQuery使用查詢

jQuery官網(wǎng)

jQuery 教程

為什么要用 jQuery

DOM API

難用
存在兼容性問題
功能太少稚铣,不能與時俱進

jQuery

兼容性好
API 友好
功能強大矛双,與時俱進

jQuery使用場景

DOM 操作較多(事件監(jiān)聽)
簡單的 AJAX
需要兼容多款瀏覽器

什么時候不用 jQuery

頁面交互極為簡單
頁面對流量有苛刻的要求
上級強制蛹找、團隊已經(jīng)有了 jQuery 的代替品

jQuery 做什么

選擇網(wǎng)頁元素
改變結(jié)果集
元素的操作:取值和賦值
元素的操作:移動
元素的操作:復(fù)制屹篓、刪除和創(chuàng)建
工具方法
事件操作
特殊效果
AJAX

jQuery 的兩種 API(只有這兩種用法,全是方法操作)

$.noConflict()
$.each()
$('ul').addClass()
$('p').text('hi')
簡記:$.abc()  $('.xxx').abc()

ready

$(callback)
window.onload 事件
document 的 DOMContentLoaded 事件
$( document ).ready( handler )
$().ready( handler ) (this is not recommended)
$( handler )

jQuery選擇器

引用jQuery

BootCDN 

使用unpkg.com發(fā)送至npm(主流)

使用jQuery獲取元素

我們可以通過document.getElementById等方法獲取DOM對象靶瘸,但是方法名稱長晃危,使用不方便,而且功能有限梨水,不能像CSS選擇器那樣靈活

jQuery定義了一套選擇器規(guī)則拭荤,和CSS選擇器目的一樣,都是為了選擇出符合特定規(guī)則的元素疫诽。講jQuery不得不提到其選擇器舅世,這是jQuery能夠快速流行的非常重要的原因旦委,為了方便使用者jQuery刻意和CSS選擇器使用相同的語法,幾乎支持所有類型的CSS3選擇器雏亚,當然也有一些其特定的選擇器

選擇器

基本選擇器

$('\*') 匹配頁面所有元素
$('#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是偶數(shù)
$("E:odd")              所有E中index是奇數(shù)
$("E:eq(n)")            所有E中index為n的元素
$("E:gt(n)")            所有E中index大于n的元素
$("E:lt(n)")            所有E中index小于n的元素
$(":header")    選擇h1~h6 元素
$("div:animated")   選擇正在執(zhí)行動畫效果的元素

內(nèi)容過濾器

$('E:contains(value)')  內(nèi)容中包含value值的元素
$('E:empty')    內(nèi)容為空的元素
$('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結(jié)尾的E
$('E[attr \*=value]')   屬性attr包含value的E
$('E[attr][attr \*=value]') 可以連用

子元素過濾器

$('E:nth-child(n)') E的第n個子節(jié)點
$('E:nth-child(3n+1)')  E的index符合3n+1表達式的子節(jié)點
$('E:nth-child(even)')  E的index為偶數(shù)的子節(jié)點
$('E:nth-child(odd)')   E的index為奇數(shù)的子節(jié)點
$('E:first-child')  所有E的第一個子節(jié)點
$('E:last-child')   所有E的最后一個子節(jié)點
$('E:only-child')   只有唯一子節(jié)點的E的子節(jié)點

表單元素選擇器

$('E:type') 特定類型的input
$(':checked')   被選中的checkbox或radio
$('option: selected')   被選中的option

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

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

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

我們可以通過類數(shù)組下標的獲取方式或者get方法獲取指定index的DOM對象莉擒,也就是我們說的jQuery對象轉(zhuǎn)DOM對象

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

get()不寫參數(shù)把所有對象轉(zhuǎn)為DOM對象返回酿炸。addClassList,removeClassList同樣適用

兄弟元素的獲取

.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])

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

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

.children([selector])

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

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

.find([selector])

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

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

篩選當前結(jié)果集

.first()

獲取當前結(jié)果集中的第一個對象

.last()

獲取當前結(jié)果集的最后一個對象

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

篩選當前結(jié)果集中符合條件的對象歼疮,參數(shù)可以是一個選擇器或者一個函數(shù)

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

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

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

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

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

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

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

.has(selector), .has(dom)

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

$('li').has('span')
image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末匙睹,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子济竹,更是在濱河造成了極大的恐慌痕檬,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件送浊,死亡現(xiàn)場離奇詭異梦谜,居然都是意外死亡,警方通過查閱死者的電腦和手機袭景,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門唁桩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人耸棒,你說我怎么就攤上這事荒澡。” “怎么了与殃?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵单山,是天一觀的道長。 經(jīng)常有香客問我幅疼,道長米奸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任爽篷,我火速辦了婚禮悴晰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘狼忱。我一直安慰自己膨疏,他們只是感情好,可當我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布钻弄。 她就那樣靜靜地躺著佃却,像睡著了一般。 火紅的嫁衣襯著肌膚如雪窘俺。 梳的紋絲不亂的頭發(fā)上饲帅,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天,我揣著相機與錄音瘤泪,去河邊找鬼灶泵。 笑死,一個胖子當著我的面吹牛对途,可吹牛的內(nèi)容都是我干的赦邻。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼实檀,長吁一口氣:“原來是場噩夢啊……” “哼惶洲!你這毒婦竟也來了按声?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤恬吕,失蹤者是張志新(化名)和其女友劉穎签则,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體铐料,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡渐裂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了钠惩。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片柒凉。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖妻柒,靈堂內(nèi)的尸體忽然破棺而出扛拨,到底是詐尸還是另有隱情,我是刑警寧澤举塔,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布绑警,位于F島的核電站,受9級特大地震影響央渣,放射性物質(zhì)發(fā)生泄漏计盒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一芽丹、第九天 我趴在偏房一處隱蔽的房頂上張望北启。 院中可真熱鬧,春花似錦拔第、人聲如沸咕村。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽懈涛。三九已至,卻和暖如春泳猬,著一層夾襖步出監(jiān)牢的瞬間批钠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工得封, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留埋心,地道東北人。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓忙上,卻偏偏與公主長得像拷呆,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容