2020-04-06 jQuery

為什么要學jQuery

使用JS操作DOM的時候东抹,會遇到以下的一些缺點:

1\. 獲取元素的方法太少且長蕊爵,麻煩拥坛。
2\. 遍歷偽數組很麻煩匈仗,通常要嵌套一大堆的for循環(huán)。
3\. 注冊的事件會覆蓋悍手。
4\. 有兼容性問題帘睦。
5\. 實現動畫很麻煩

jQuery初體驗

$(document).ready(function () {
  $("#btn1").click(function () {
    // 隱式迭代:偷偷的遍歷袍患,在jQuery中,不需要手動寫for循環(huán)了竣付,會自動進行遍歷诡延。
      $("div").show(200);
  });
  $("#btn2").click(function () {
      $("div").text("我是內容");
  });
});

使用jQuery的優(yōu)點

1\. 獲取元素的方式非常的簡單,而且非常的豐富
2\. jQuery的隱式迭代特性古胆,不再需要書寫for循環(huán)語句肆良。
3\. 使用jQuery完全不用考慮兼容性問題。
4\. jQuery提供了一系列動畫相關的函數逸绎,使用非常方便惹恃。
5\. 代碼簡單、粗暴棺牧。</pre>

什么是jQuery?

  • jQuery是一個快速的巫糙、輕量的、功能豐富的js庫颊乘。

  • jQuery的官網 http://jquery.com/

  • jQuery就是一個js庫参淹,使用jQuery的話,會比使用JavaScript更簡單乏悄。

  • js庫:把一些常用到的方法寫到一個單獨的js文件浙值,使用的時候直接去引用這js文件就可以了。(animate.js檩小、common.js)

入口函數

入口函數的好處:
1. 等待文檔加載完成开呐,保證能夠獲取到元素
2. 形成了一個沙箱,防止全局變量污染规求。
兩種寫法:

//第一種寫法
$(document).ready(function() {

});
//第二種寫法
$(function() {

});

jQuery入口函數與js入口函數的對比

1.  JavaScript的入口函數要等到頁面中所有資源(包括圖片筐付、文件)加載完成才開始執(zhí)行。
2.  jQuery的入口函數只會等待文檔樹加載完成就開始執(zhí)行颓哮,并不會等待圖片家妆、文件的加載鸵荠。

jQuery使用步驟

  1. 引包(引入js文件)
<script src="jquery-1.11.1.js"></script>
  1. 寫上入口函數
$(document).ready(function () {
});
?
// 或者
$(function(){

});
  1. 在入口函數內部實現功能
$("#btnShowDiv").click(function () {
   $("div").show(1000);
}); 

jQuery對象與DOM對象(重點)

基本概念:

1. DOM對象:使用JavaScript中的方法獲取頁面中的元素返回的對象就是dom對象冕茅。
2. jQuery對象:jquery對象就是使用jquery的方法獲取頁面中的元素返回的對象就是jQuery對象。
3. jQuery對象其實就是DOM對象的包裝集(包裝了DOM對象的集合(偽數組))

jQuery對象與DOM對象的區(qū)別:

1. DOM對象與jQuery對象的方法不能混用蛹找。
2. DOM對象可以和jQuery對象相互轉化

DOM對象轉換成jQuery對象

var $obj = $(domObj);
// $(document).ready(function(){}); 就是典型的DOM對象轉jQuery對象

jQuery對象轉換成DOM對象:

var $li = $(“l(fā)i”);
//第一種方法(推薦使用)
$li[0]
//第二種方法
$li.get(0)</pre>

選擇器

什么是jQuery選擇器

jQuery選擇器是jQuery為我們提供的一組方法姨伤,讓我們更加方便的獲取到頁面中的元素。注意:jQuery選擇器返回的是jQuery對象庸疾。

jQuery選擇器有很多乍楚,基本兼容了CSS1到CSS3所有的選擇器,并且jQuery還添加了很多更加復雜的選擇器届慈。

jQuery選擇器雖然很多徒溪,但是選擇器之間可以相互替代忿偷,就是說獲取一個元素,你會有很多種方法獲取到臊泌。所以我們平時真正能用到的只是少數的最常用的選擇器鲤桥。

css選擇器

名稱 用法 描述
ID選擇器 $(“#id”); 獲取指定ID的元素
類選擇器 $(“.class”); 獲取同一類class的元素
標簽選擇器 $(“div”); 獲取同一類標簽的所有元素
并集選擇器 $(“div,p,li”); 使用逗號分隔,只要符合條件之一就可渠概。
交集選擇器 $(“div.redClass”); 獲取class為redClass的div元素
子代選擇器 $(“ul>li”); 使用>號茶凳,獲取兒子層級的元素,注意播揪,并不會獲取孫子層級的元素
后代選擇器 $(“ul li”); 使用空格贮喧,代表后代選擇器,獲取ul下的所有l(wèi)i元素猪狈,包括孫子等

過濾選擇器

名稱 用法 描述
:eq(index) $(“l(fā)i:eq(2)”).css(“color”, ”red”); 獲取到的li元素中箱沦,選擇索引號為2的元素,索引號index從0開始雇庙。
:odd $(“l(fā)i:odd”).css(“color”, ”red”); 獲取到的li元素中饱普,選擇索引號為奇數的元素
:even $(“l(fā)i:even”).css(“color”, ”red”); 獲取到的li元素中,選擇索引號為偶數的元素
:first $(“l(fā)i:first”).css(“color”, ”red”); 獲取到的li元素中的第一個
:last $(“l(fā)i:last”).css(“color”, ”red”); 獲取到的li元素中的最后一個

篩選選擇器(方法)

名稱 用法 描述
children(selector) $(“ul”).children(“l(fā)i”) 獲取當前元素的所有子元素中的li元素
find(selector) $(“ul”).find(“l(fā)i”); 獲取當前元素中的后代元素中的li元素
siblings(selector) $(“#first”).siblings(“l(fā)i”); 查找兄弟節(jié)點状共,不包括自己本身套耕。
parent() $(“#first”).parent(); 查找父親
eq(index) $(“l(fā)i”).eq(2); 相當于$(“l(fā)i:eq(2)”),index從0開始
next() $(“l(fā)i”).next() 找下一個兄弟
prev() $(“l(fā)i”).prev() 找上一次兄弟

其他補充

mouseover 與 mouseenter

  • mouseover 和 mouseoverenter 都有鼠標經過的意思,但是在注冊鼠標經過事件的時候峡继,推薦使mouseenter

mouseenter 與 mouseover 的不同

  1. mouseover與mouseout是一對事件冯袍,當鼠標經過當前元素或者當前元素的子元素的時候,mouseover事件都會觸發(fā)【事件冒泡】碾牌。

  2. mouseenter 與mouseleave是一對事件康愤,只有當鼠標經過當前元素時,事件會觸發(fā)舶吗,鼠標經過子元素征冷,mousenter事件是不會觸發(fā)的。

index方法

  • index()方法返回的是當前元素在所有兄弟元素里面的索引誓琼。
<ul>
 <li><a href="#">我是鏈接</a></li>
 <li><a href="#">我是鏈接</a></li>
 <li><a href="#">我是鏈接</a></li>
 <li><a href="#">我是鏈接</a></li>
 <li><a href="#">我是鏈接</a></li>
 <li><a href="#">我是鏈接</a></li>
 <li><a href="#">我是鏈接</a></li>
 <li><a href="#">我是鏈接</a></li>
 <li><a href="#">我是鏈接</a></li>
</ul>

當碰到這種結構的時候检激,推薦給li注冊事件,這樣通過index方法才能獲取到正確的索引值腹侣。

區(qū)分jQuery與Javascript

JavaScript是一門編程語言叔收,jQuery僅僅是用JavaScript實現的一個JavaScript庫,目的是簡化我們的開發(fā)傲隶。

image.png
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末饺律,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子跺株,更是在濱河造成了極大的恐慌复濒,老刑警劉巖脖卖,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異巧颈,居然都是意外死亡胚嘲,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門洛二,熙熙樓的掌柜王于貴愁眉苦臉地迎上來馋劈,“玉大人,你說我怎么就攤上這事晾嘶〖宋恚” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵垒迂,是天一觀的道長械姻。 經常有香客問我,道長机断,這世上最難降的妖魔是什么楷拳? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮吏奸,結果婚禮上欢揖,老公的妹妹穿的比我還像新娘。我一直安慰自己奋蔚,他們只是感情好她混,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著泊碑,像睡著了一般坤按。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上馒过,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天臭脓,我揣著相機與錄音,去河邊找鬼腹忽。 笑死来累,一個胖子當著我的面吹牛,可吹牛的內容都是我干的留凭。 我是一名探鬼主播佃扼,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼偎巢,長吁一口氣:“原來是場噩夢啊……” “哼蔼夜!你這毒婦竟也來了?” 一聲冷哼從身側響起压昼,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤求冷,失蹤者是張志新(化名)和其女友劉穎瘤运,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體匠题,經...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡拯坟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了韭山。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片郁季。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖钱磅,靈堂內的尸體忽然破棺而出梦裂,到底是詐尸還是另有隱情,我是刑警寧澤盖淡,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布年柠,位于F島的核電站,受9級特大地震影響褪迟,放射性物質發(fā)生泄漏冗恨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一味赃、第九天 我趴在偏房一處隱蔽的房頂上張望掀抹。 院中可真熱鬧,春花似錦心俗、人聲如沸渴丸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谱轨。三九已至,卻和暖如春吠谢,著一層夾襖步出監(jiān)牢的瞬間土童,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工工坊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留献汗,地道東北人。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓王污,卻偏偏與公主長得像罢吃,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子昭齐,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355