js_jQuery選擇器_Dom操作_樣式_事件處理

為什么學習jQuery?
0.jQuery 由 John Resig 創建,是繼 Prototype 之后又一個優秀的 Javascript 庫,其宗旨是「寫更少的代碼,做更多的事情」
1.通過js原生語法如:document.getElementById等方法獲取DOM對象,方法名稱長,使用不方便.
2.jQuery定義了一套選擇器規則,和CSS選擇器目的一樣,都是為了選擇出符合特定規則的元素,代碼簡潔.
3.jQuery選擇器方便使用者jQuery刻意和CSS選擇器使用相同的語法,幾乎支持所有類型的CSS3選擇器

1: 說說庫和框架的區別?

  • 庫的英語為 Library,框架的英語為 Framework
    是將代碼集合成的一個產品,供程序員調用。面向過程的代碼組織形式而成的庫也叫函數庫。

  • 框架則是為解決一個(一類)問題而開發的產品,框架用戶一般只需要使用框架提供的類或函數,即可實現全部功能??梢哉f,框架是庫的升級版。
    開發者在使用框架的時候,必須使用這個框架的全部代碼。

  • 庫只管引進來使用,除了庫接口,沒有其他約束,
    而框架則有著各種各樣的嚴格約束。例如bootstrap,約束了DOM結構。例如AnglarJS,也對DOM結構有約束。這些都是框架。框架就像一門語言,有自己的世界。用了什么框架,就得按照這個框架世界里的規則行事編碼

2: jquery 能做什么?

  • jQuery 是一個高效、精簡并且功能豐富的 JavaScript 工具庫。它提供的 API 易于使用且兼容眾多瀏覽器,這讓諸如 HTML 文檔遍歷和操作、事件處理、動畫和 Ajax 操作更加簡單

3: jquery 對象和 DOM 原生對象有什么區別?如何轉化?

  • 區別
    jQuery對象就是通過jQuery包裝DOM對象后產生的對象(集合對象)。jQuery對象是jQuery獨有的,可以使用jQuery里的方法。
    因此jQuery對象和DOM對象是不一樣的,不能調用對方定義的方法。
    dom對象須使用dom方法,jq對象需使用jq方法
    $(‘#test’).innerHTML會報錯,document.getElementById(‘#test’)[0].html()也會報錯。

  • 2者轉換:

普通的DOM對象可以用$()包裝起來轉換為jQuery對象:$(document.getElementById(‘#test’)).html();//正常

jQuery對象本身是一個集合,要轉換為DOM對象,可通過數組索引取出:
第一種方式:$(‘#test’)[0]
第二種方式:$(‘#test’).get(0)
注: eq(0)返回的還是jQuery對象,eq(0)[0]是DOM對象。

4:jquery中如何綁定事件?bind、unbind、delegate、live、on、off都有什么作用?推薦使用哪種?使用on綁定事件使用事件代理的寫法?

  • 綁定事件
    on,bind,delegate,live,unbind,trigger
  • on
    自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品,我們推薦使用on()方法
    on() 方法在被選元素及子元素上添加一個或多個事件處理程序。
    使用 on() 方法添加的事件處理程序適用于當前及未來的元素
    如需添加只運行一次的事件然后移除,請使用 one()
    語法
    $(*selector*).on(*event,childSelector,data,function,map*)
  • bind() 方法為被選元素添加一個或多個事件處理程序,并規定事件發生時運行的函數
    $(selector).bind(event,data,function)

  • unbind() 方法移除被選元素的事件處理程序。
    該方法能夠移除所有的或被選的事件處理程序,或者當事件發生時終止指定函數的運行。
    $(selector).unbind(event,function)

  • delegate
    delegate() 方法為指定的元素(屬于被選元素的子元素)添加一個或多個事件處理程序,并規定當這些事件發生時運行的函數。
    使用 delegate() 方法的事件處理程序適用于當前或未來的元素(比如由腳本創建的新元素)。
    語法
    $(selector).delegate(childSelector,event,data,function)

  • live
    ive() 方法為被選元素附加一個或多個事件處理程序,并規定當這些事件發生時運行的函數。
    通過 live() 方法附加的事件處理程序適用于匹配選擇器的當前及未來的元素(比如由腳本創建的新元素)。
    語法
    $(selector).live(event,data,function)
  • off
    off() 方法通常用于移除通過 on()方法添加的事件處理程序。
    自 jQuery 版本 1.7 起,off() 方法是 unbind()、die() 和 undelegate() 方法的新的替代品,推薦使用off()該方法

5:jquery 如何展示/隱藏元素?

  • 使用 hide() 和 show() 方法來隱藏和顯示 HTML 元素:
//隱藏元素
$("#hide").click(function(){
  $("p").hide();
});

//顯示元素
$("#show").click(function(){
  $("p").show();
});
  • 改變元素的css中的display屬性
$(".box").css("display", "block");
    //設置元素的display為block
$(".box").css("display", "none");
    //設置元素的display為none
  • 用jQuery的fadeIn()、fadeOut()方法
$(".box").fadeIn();
   //fadeIn() 方法使用淡入效果來顯示被選元素,假如該元素是隱藏的。
$(".box").fadeOut();
   //fadeOut() 方法使用淡出效果來隱藏被選元素,假如該元素是隱藏的。

6: jquery 動畫如何使用?

  • animate() 方法執行 CSS 屬性集的自定義動畫。
    該方法通過CSS樣式將元素從一個狀態改變為另一個狀態。CSS屬性值是逐漸改變的,這樣就可以創建動畫效果。
    只有數字值可創建動畫(比如 "margin:30px")。字符串值無法創建動畫(比如 "background-color:red")。
    注釋:使用 "+=" 或 "-=" 來創建相對動畫(relative animations)。

語法1:
$(selector).animate(styles,speed,easing,callback)

styles: 必需,規定產生動畫效果的 CSS 樣式和值。
speed:可選,規定動畫的速度
easing:可選,規定在不同的動畫點中設置動畫速度的 easing 函數
callback:可選,animate 函數執行完之后,要執行的函數。

語法 2
$(selector).animate(styles,options)

styles: 必需,規定產生動畫效果的 CSS 樣式和值。
options:可選,規定動畫的額外選項

7:如何設置和獲取元素內部 HTML 內容?如何設置和獲取元素內部文本?

  • 獲取元素內部 HTML 內容
    text() - 設置或返回所選元素的文本內容
    html() - 設置或返回所選元素的內容(包括 HTML 標記)
    val() - 設置或返回表單字段的值
$(".box").html() //獲取元素內部的html內容,類似于innerHTML
$(".box").text() //獲取元素內部的text文本,類似于innerText
  • 設置元素內部 HTML 內容和內部文本
$(".box").html("<p>設置了一個段落</p>")//設置了元素內部的html內容,標簽生效
$(".box").text("設置了一個文本")//設置了元素內部的text文本,標簽不生效

8:如何設置和獲取表單用戶輸入或者選擇的內容?如何設置和獲取元素屬性?

//獲取
$(selectorOfFormData).val()//不加參數即可獲取用戶輸入或選擇的內容
//設置
$(selectorOfFormData).val(modifiedVal)//加參數即可設置用戶輸入或選擇的內容
//獲取
$(selector).attr(attributeName)//傳入元素屬性名即可獲取元素的屬性值

//設置單個屬性
$(selector).attr(attributeName,attributeVal)//傳入元素屬性名和要設置的屬性值即可完成對元素的屬性設置

//用key:value的形式設置多個屬性的值:
$( "img" ).attr({
  src: "/resources/hat.gif",
  title: "jQuery",
  alt: "jQuery Logo"
});

9: 使用 jquery實現如下效果

1.gif

預覽代碼

  • index() 方法返回指定元素相對于其他指定元素的 index 位置。

10: 使用 jquery 實現如下效果

2.gif

預覽代碼

11: 實現如下效果

3.gif

預覽代碼

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,836評論 6 540
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,275評論 3 428
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 177,904評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,633評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,368評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,736評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,740評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,919評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,481評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,235評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,427評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,968評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,656評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,055評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,348評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,160評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,380評論 2 379

推薦閱讀更多精彩內容