1. jQuery選擇器
*jQuery*
選擇器是jQuery庫中非常重要的部分之一遗座。它支持網(wǎng)頁開發(fā)者所熟知的CSS語法快速輕松地對頁面進(jìn)行設(shè)置谈山。對于事件處理,動畫和Ajax更加簡單。
2. 用jQuery的好處:
- 兼容性好
- API友好
- 功能強(qiáng)大统捶,與時俱進(jìn)
3.什么時候時候用jQuery:
- DOM操作較多(事件監(jiān)聽)
- 簡單的AJAx
- 需要兼容多款瀏覽器
4.什么是不用jQuery:
- 頁面交互極為簡單
- 頁面對流有咳咳的要求你
- 上級強(qiáng)制滚停,團(tuán)隊已經(jīng)有 jQueryd 的替代品
5.jQuery是做什么的:
- 選擇網(wǎng)頁元素
- 改變結(jié)果
- 元素的操作:取值和賦值
- 元素的操作:移動
- 元素的操作:復(fù)制沃粗,刪除和創(chuàng)建
- 工具方法
- 事件操作
- 特殊效果
- AJAX
- http://devdocs.io/jquery/(此網(wǎng)站可查詢jQuery的一些方法)
6.jQuery 的兩種 API
$.noConflict()
$.each()
$('ul').addClass()
$('p').text('hi')
7.ready
$(callback)
window.onload 事件
document 的 DOMContentLoaded 事件
$( document ).ready( handler )
$().ready( handler ) (this is not recommended)
$( handler )
8.使用jQuery獲取元素
我們可以通過document.getElementById等方法獲取DOM對象,但是方法名稱長键畴,使用不方便最盅,而且功能有限,不能像CSS選擇器那樣靈活
jQuery定義了一套選擇器規(guī)則起惕,和CSS選擇器目的一樣涡贱,都是為了選擇出符合特定規(guī)則的元素。講jQuery不得不提到其選擇器惹想,這是jQuery能夠快速流行的非常重要的原因问词,為了方便使用者jQuery刻意和CSS選擇器使用相同的語法,幾乎支持所有類型的CSS3選擇器嘀粱,當(dāng)然也有一些其特定的選擇器
1. 選擇器
基本選擇器 | |
---|---|
$('*') | 匹配頁面所有元素 |
$('#id') | id選擇器 |
$('.class') | 類選擇器 |
$('element') | 標(biāo)簽選擇器 |
組合/層次選擇器 | |
---|---|
$('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 標(biāo)簽的 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 表達(dá)式的子節(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 |
除了使用選擇器炉奴,jQuery 還提供了一些方法幫助我們查找當(dāng)前元素相關(guān)的元素:
-
.eq(index), .get([index])
對于一個特定結(jié)果集逼庞,我們想獲取到指定 index 的 jQuery 對象,可以使用 eq方法:
$('div').eq(3); // 獲取結(jié)果集中的第四個jQuery對象
我們可以通過類數(shù)組下標(biāo)的獲取方式或者 get 方法獲取指定 index 的 DOM 對象瞻赶,也就是我們說的 jQuery 對象轉(zhuǎn)DOM對象:
$('div')[2];
$('div').eq(2);
get()
不寫參數(shù)把所有對象轉(zhuǎn)為DOM對象返回赛糟。
2. 兄弟元素獲取
-
.next([selector]), .prev([selector])
next
取得匹配的元素集合中每一個元素緊鄰的后面同輩元素的元素集合。如果提供一個選擇器砸逊,那么只有緊跟著的兄弟元素滿足選擇器時璧南,才會返回此元素。prev
正好相反师逸,獲取元素之前的同輩元素:
$('.test').next();
$('.test').prev('li');
.nextAll([selector]), .prevAll([selector])
nextAll
獲得每個匹配元素集合中每個元素所有后面的同輩元素司倚,選擇性篩選的選擇器,prevAll
與之相反篓像,獲取元素前面的同輩元素:.siblings([selectors])
獲得匹配元素集合中每個元素的兄弟元素,可以提供一個可選的選擇器:
$('li.third-item').siblings()
3. 兄弟元素獲取
-
.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')
4. 篩選當(dāng)前結(jié)果集
.first()
獲取當(dāng)前結(jié)果集中的第一個對象。. last()
獲取當(dāng)前結(jié)果集的最后一個對象奠滑。.filter(selector), .filter(function(index))
篩選當(dāng)前結(jié)果集中符合條件的對象丹皱,參數(shù)可以是一個選擇器或者一個函數(shù):
$('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)
判斷當(dāng)前匹配的元素集合中的元素种呐,是否為一個選擇器,DOM 元素弃甥,或者 jQuery 對象爽室,如果這些元素至少一個匹配給定的參數(shù),那么返回 true:
if ( $target.is("li") ) {
$target.css("background-color", "red");
}
-
.has(selector), .has(dom)
篩選匹配元素集合中的那些有相匹配的選擇器或DOM元素的后代元素:
$('li').has('span')