天天看點

jquery 判斷是否有類名_jQuery簡單小結(1)

jquery 判斷是否有類名_jQuery簡單小結(1)
JavaScript庫

倉庫 : 可以把很多東西放到這個倉庫裡面 , 找東西隻需要到倉庫裡面查找到就可以了

JavaScript庫

: 即 library , 是一個封裝好的特定的集合 ( 方法 和函數).

簡單了解 : 就是一個JS檔案 , 裡面對我們原生js代碼進行了封裝 , 存放到裡面 , 這樣我們就可以快速高效的使用這些封裝好的功能了

比如 : jQuery , 就是為了快速友善的操作DOM, 裡面基本都是函數 ( 方法 )

從封裝一大堆函數的角度了解庫,就是在這個庫中,封裝了很多預先定義好的函數在裡面,比如動畫animate、 hide、show,比如擷取元素等。

jQuery 的概念

jquery 是一個快速 , 簡介的JavaScript庫 , 其設計的宗旨是 " write Less , Do More" , 即倡導寫更少的代碼 , 做更多的事情

jQuery 的優點

優點 :

1, 輕量級 . 核心檔案才十幾kb, 不會影響頁面加載速度

2, 跨浏覽器相容 , 基本相容了現在主流的浏覽器

3, 鍊式程式設計 , 隐式疊代

4, 對事件 , 樣式 , 動畫支援 , 大大簡化了DOM操作

5, 支援插件擴充開發 , 有着豐富的第三方的插件 , 列 :

樹形菜單 . 日期控件 , 輪播圖等

6, 免費 , 開源

jQuery 的下載下傳

官網位址: jQuery

版本 :

1x :相容 IE 678 等低版本浏覽器,官網不再更新

2x :不相容 IE 678 等低版本浏覽器,官網不再更新

3x :不相容 IE 678 等低版本浏覽器,是官方主要更新維護的版本

各個版本的下載下傳:jQuery CDN

jQuery的使用步驟

1, 引入jQuery檔案

2 , 使用jQuery文法即可

jQuery的入口函數

  • $( function ( ) {

-------此處是頁面DOM加載完成的入口

} );

  • $ ( document ) . ready ( function ( ) {

------- 此處是頁面DOM加載完成的入口

} );

1. 等着 DOM 結構渲染完畢即可執行内部代碼,不必等到所有外部資源加載完成,jQuery 幫我們完成了封裝。

2. 相當于原生 js 中的 DOMContentLoaded。

3. 不同于原生 js 中的 load 事件是等頁面文檔、外部的js 檔案、css檔案、圖檔加載完畢才執行内部代碼。

4. 更推薦使用第一種方式。

jQuery 的頂級對象$

1, $ 是jQuery的别稱 , 在代碼中可以使用jQuery代替$ , 但一般為了友善 , 通常都直接使用$

2, $ 是jQuery的頂級對象 , 相當于原生JavaScript中的window . 把元素利用$包裝成jQuery對象 , 就可以調用jQuery的方法

jQuery對象和DOM對象轉換

1, 用原生JS擷取來的對象就是DOM對象

2 , jQuery方法擷取來的元素就是jQuery對象

3 , jQuery對象本質是 : 利用$ 對 DOM 對象包裝後産生的對象 ( 僞數組形式存儲)

注意 :

隻有jQuery對象才能使用jQuery方法 , DOM對象則使用原生的JavaScript方法

DOM對象與jQuery對象之間是可以互相轉換的

因為原生js比jQuery更大 
           

jQuery選擇器

基礎選擇器

$ ( "選擇器" ) ---裡面選擇器直接寫 css 選擇器即可, 但是要加引号

  • 名稱 -------------------用法---------------描述
  • ID選擇器-------------$ ( " #id" )---------擷取指定id元素
  • 全選選擇器---------$ ( " * " )------------比對所有的元素
  • 類選擇器 ------------$( " . class " )------擷取同一類class的元素
  • 标簽選擇器----------$ ( " div " )---------擷取同一類的标簽的所有元素
  • 并集選擇器 --------$ ( "div , p , li " )-----擷取多個元素
  • 交集選擇器 ---------$ ( " li . current " )-----交集元素
層級選擇器

層級選擇器最常用的兩個分别為 , 後代選擇器 和 子代選擇器

--名稱 -------------用法---------描述

  • 自帶選擇器-----$ ( " ul > li " ); ----使用>号, 擷取親兒子層級的元素 , 注意, 并不會擷取孫子層級的元素
  • 後代選擇器器------$ ( "ul li " );---使用空格 , 代表後代選擇器 , 擷取ul下的所有li元素, 包括孫子等
篩選選擇器

文法------用法-------------描述

  • :first-----$( ' li : first ' )---擷取第一個li元素
  • :last ----$ ( ' li : last ' )---擷取最後一個li元素
  • :eq ( index ) --$ ( ' li : eq ( 2 ) ' ) --擷取到的li元素中, 選擇索引号為2的元素, ----------------------------------索引号index從0開始
  • :odd------$ ( ' li : odd ' ) ------擷取到的li元素中, 選擇索引号為奇數的元素
  • :even-----$ ( ' li : even ' )-----擷取到的li元素中, 選擇索引号為偶數的元素

隐式疊代(重要)

周遊内部 DOM 元素(僞數組形式存儲)的過程就叫做隐式疊代。

1.3 隐式疊代(重要)

簡單了解:給比對到的所有元素進行循環周遊,執行相應的方法,

而不用我們再進行循環,簡化我們的操作, 友善我們調用。

$ 
           

通過一個節點找另外一個節點

文法------------------用法--------------------------------------說明----

  • parent ( )--$ ( " li " ) . parent ( ); ---------查找父級
  • children ( selector ) ----$ ( " ul " ) . children ( li );----查找兒子, 最親的兒子
  • siblings ( selector )-----$ ( ".first" ) . siblings ('' li '' );-----除了自己本身以外的所有親兄弟
  • nextAll ( [ expr ] )---$ ( " .first " ) . nextAll ( );----查找目前元素之後的所有的同輩元素
  • prevtAll ( [ expr ] )---$ ( " .first " ) . prevtAll ( );-----查找目前元素之前的所有的同輩元素
  • hasClass ( class )-----$ ( " div" ) . hasClass ("protected" );---檢查目前的元素是否含有某個特定的類, 如果有, 則傳回true
  • eq ( index )---- $ ( " li " ) . eq ( 2 );----相當于 $ ( " li : eq ( 2 )" ) , index從0 開始

jQuery設定樣式

$
           

jQuery 裡面的排他思想

// 想要多選一的效果,排他思想:目前元素設定樣式,其餘的兄弟元素清除樣式

$ 
           
鍊式程式設計

鍊式程式設計是為了節省代碼量,看起來更優雅

$ 
           
jQuery 樣式操作

jQuery中常用的樣式操作有兩種:css() 和 設定類樣式方法

方法1: 操作 css 方法

​ jQuery 可以使用 css 方法來修改簡單元素樣式; 也可以操作類,修改多個樣式。

​ 常用以下三種形式 :

// 1.參數隻寫屬性名,則是傳回屬性值

var 
           

// 2. 參數是屬性名,屬性值,逗号分隔,是設定一組樣式,屬性必須加引号,值如果是 數字可以不用跟機關和引号

$
           

// 3. 參數可以是對象形式,友善設定多組樣式。屬性名和屬性值用冒号隔開, 屬性可以 不用加引号

$
           

注意:css() 多用于樣式少時操作,多了則不太友善。

方法2: 設定類樣式方法

​ 作用等同于以前的 classList,可以操作類樣式, 注意操作類裡面的參數不要加點。

常用的三種設定類樣式方法:

//1, 添加類 ---
           

​ 注意:

1. 設定類樣式方法比較适合樣式多時操作,可以彌補css()的不足。

2. 原生 JS 中 className 會覆寫元素原先裡面的類名,jQuery 裡面類操作隻是對指定 類進行操作,不影響原先的類名。

jQuery效果

1.5. jQuery 效果

​ jQuery 給我們封裝了很多動畫效果,為常見的如下:

//顯示隐藏:
           

注意:

動畫或者效果一旦觸發就會執行,如果多次觸發,就造成多個動畫或者效果排隊執行,

jQuery為我們提供另一個方法,可以停止動畫排隊:stop()

顯示隐藏動畫,常見有三個方法:show() / hide() / toggle() ;

1, 顯示文法規範 :

show 
           

2 , 顯示參數

1, 參數都可以省略 , 無動畫直接顯示

2, speed : 三種預定速度之一的字元串 ( " slow ", " normal " , " fast "), 或表示動畫時長的毫秒數值 (如 : 1000)

3, easing : ( Optional ) 用來指定切換效果 , 預設是 " swing ", 可用參數 " linear ";

4 , fn : 回調函數 , 在動畫完成是執行的函數 , 每個元素執行一次

隐藏文法規範

hide 
           

2 隐藏參數 :

1, 參數都可以省略 , 無動畫直接顯示

2, speed : 三種預定速度之一的字元串 ( " slow ", " normal " , " fast "), 或表示動畫時長的毫秒數值 (如 : 1000)

3, easing : ( Optional ) 用來指定切換效果 , 預設是 " swing ", 可用參數 " linear ";

4 , fn : 回調函數 , 在動畫完成是執行的函數 , 每個元素執行一次

切換文法規範

toggle 
           

2 隐藏參數 :

1, 參數都可以省略 , 無動畫直接顯示

2, speed : 三種預定速度之一的字元串 ( " slow ", " normal " , " fast "), 或表示動畫時長的毫秒數值 (如 : 1000)

3, easing : ( Optional ) 用來指定切換效果 , 預設是 " swing ", 可用參數 " linear ";

4 , fn : 回調函數 , 在動畫完成是執行的函數 , 每個元素執行一次

平時一般不帶參數 , 直接顯示隐藏即可

滑入滑出

滑入滑出動畫,常見有三個方法:slideDown() / slideUp() / slideToggle()

1 下滑效果文法規範

slideDown 
           

2, 下滑效果參數

同上

上滑效果文法規範

slideUp 
           

效果參數 --同上

淡入淡出

fadeIn -同上淡入

fadeOut- 淡出同上

fadeToggle-淡入淡出切換-同上

自定義動畫 animate

animate
           

參數 :

(1)params: 想要更改的樣式屬性,以對象形式傳遞,必須寫。屬性名可以不用帶引号,如果是複合屬性則需要采 取駝峰命名法 borderLeft。其餘參數都可以省略。

(2)speed:三種預定速度之一的字元串(“slow”,“normal”, or “fast”)或表示動畫時長的毫秒數值(如:1000)。

(3)easing:(Optional) 用來指定切換效果,預設是“swing”,可用參數“linear”。

(4)fn: 回調函數,在動畫完成時執行的函數,每個元素執行一次

jQuery 屬性操作

  • 設定或擷取元素固有屬性值 prop()

所謂元素固有屬性就是元素本身自帶的屬性,比如<a> 元素裡面的 href ,比如 <input> 元素裡面的type

//1, 擷取屬性文法----
           
  • 設定或擷取元素自定義屬性值 attr()

使用者自己給元素添加的屬性,我們稱為自定義屬性。比如給 div 添加 index =“1”。

1. 擷取屬性文法

attr
           

設定屬性文法

attr
           

改方法也可以擷取H5 自定義屬性

資料緩存 data()

data() 方法可以在指定的元素上存取資料,并不會修改DOM 元素結構。一旦頁面重新整理,之前存放的資料都将被移除

1. 附加資料文法

data
           

擷取資料文法

date(''name'') // 向被選元素擷取資料

同時,還可以讀取HTML5 自定義屬性 data-index ,得到的是數字型

jQuery 内容文本值

主要針對元素的内容還有表單的值操作。

1. 普通元素内容 html()( 相當于原生inner HTML)

html
           

2. 普通元素文本内容 text() (相當與原生 innerText)

text
           

3. 表單的值 val()( 相當于原生value)

val
           
周遊元素

jQuery 隐式疊代是對同一類元素做了同樣的操作。如果想要給同一類元素做不同操作,就需要用到周遊

  • 文法1:
$
           

1. each() 方法周遊比對的每一個元素。主要用DOM處理。each 每一個

2. 裡面的回調函數有2個參數: index 是每個元素的索引号; demEle 是每個DOM元素對象,不是jquery對象

3. 是以要想使用jquery方法,需要給這個dom元素轉換為jquery對象 $(domEle)

  • 文法2
$
           

1. $.each()方法可用于周遊任何對象。主要用于資料處理,比如數組,對象

2. 裡面的函數有2個參數: index 是每個元素的索引号; element 周遊内容

建立元素
$
           
添加元素

1. 内部添加

element
           

2. 外部添加

element
           

① 内部添加元素,生成之後,它們是父子關系。

② 外部添加元素,生成之後,他們是兄弟關系。

删除元素
element
           

① remove 删除元素本身。

② empt() 和 html('''') 作用等價,都可以删除元素裡面的内容,隻不過html 還可以設定内容。

jQuery 尺寸

以上參數為空,則是擷取相應值,傳回的是數字型

如果參數為數字,則是修改相應值

參數可以不必寫機關。

jQuery 位置

位置主要有三個:offset()、position()、scrollTop()/scrollLeft()

1. offset() 設定或擷取元素偏移

① offset() 方法設定或傳回被選元素相對于文檔的偏移坐标,跟父級沒有關系。

② 該方法有2個屬性left、top 。offset().top 用于擷取距離文檔頂部的距離,offset().left 用于擷取距離文檔左側的距離。

③ 可以設定元素的偏移:offset({ top: 10, left: 30 });

2. position() 擷取元素偏移

① position() 方法用于傳回被選元素相對于帶有定位的父級偏移坐标,如果父級都沒有定位,則以文檔為準。

② 該方法有2個屬性left、top。position().top 用于擷取距離定位父級頂部的距離,position().left 用于擷取距離定位父級左側的距離。

③ 該方法隻能擷取。

3. scrollTop()/scrollLeft() 設定或擷取元素被卷去的頭部和左側

① scrollTop() 方法設定或傳回被選元素被卷去的頭部。

② 不跟參數是擷取,參數為不帶機關的數字則是設定被卷去的頭部。

繼續閱讀