jQuery是一個輕量級的、兼容多瀏覽器的JavaScript庫。css
jQuery使用戶可以更方便地處理HTML Document、Events、實現動畫效果、方便地進行Ajax交互,可以極大地簡化JavaScript編程。它的宗旨就是:「Write less, do more.「html
一款輕量級的JS框架。jQuery核心js文件才幾十kb,不會影響頁面加載速度。前端
豐富的DOM選擇器,jQuery的選擇器用起來很方便,好比要找到某個DOM對象的相鄰元素,JS可能要寫好幾行代碼,而jQuery一行代碼就搞定了,再好比要將一個表格的隔行變色,jQuery也是一行代碼搞定。jquery
鏈式表達式。jQuery的鏈式操做能夠把多個操做寫在一行代碼裏,更加簡潔。web
事件、樣式、動畫支持。jQuery還簡化了js操做css的代碼,而且代碼的可讀性也比js要強。編程
Ajax操做支持。jQuery簡化了AJAX操做,後端只需返回一個JSON格式的字符串就能完成與前端的通訊。後端
跨瀏覽器兼容。jQuery基本兼容瞭如今主流的瀏覽器,不用再爲瀏覽器的兼容問題而傷透腦筋。數組
插件擴展開發。jQuery有着豐富的第三方的插件,例如:樹形菜單、日期控件、圖片切換插件、彈出窗口等等基本前端頁面上的組件都有對應插件,而且用jQuery插件作出來的效果很炫,而且能夠根據本身須要去改寫和封裝插件,簡單實用。瀏覽器
表單對象屬性app
offset() // 獲取匹配元素在當前窗口的相對偏移或設置元素位置
position() // 獲取匹配元素相對父元素的偏移
scrollTop() // 獲取匹配元素相對滾動條頂部的偏移
scrollLeft() // 獲取匹配元素相對滾動條左側的偏移
height()
width()
innerHeight()
innerWidth()
outerHeight()
outerWidth()
<input type="checkbox" value="basketball" name="hobby">籃球 <input type="checkbox" value="football" name="hobby">足球 <select multiple id="s1"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select>
對於標籤上有的能看到的屬性和自定義屬性都用attr
對於返回布爾值的好比checkbox、radio和option的是否被選中都用prop。
添加到指定元素內部的後面
添加到指定元素內部的前面
添加到指定元素外部的後面
添加到指定元素外部的前面
移除和清空元素
當DOM載入就緒能夠查詢及操縱時綁定一個要執行的函數。這是事件模塊中最重要的一個函數,由於它能夠極大地提升web應用程序的響應速度。
$(document).ready(function(){ // 在這裏寫你的JS代碼... })
簡寫:
$(function(){ // 你在這裏寫你的代碼 })
與window.onload的區別
事件委託是經過事件冒泡的原理,利用父標籤去捕獲子標籤的事件。
示例:
表格中每一行的編輯和刪除按鈕都能觸發相應的事件。
$("table").on("click", ".delete", function () { // 刪除按鈕綁定的事件 })
// 基本 show([s,[e],[fn]]) hide([s,[e],[fn]]) toggle([s],[e],[fn]) // 滑動 slideDown([s],[e],[fn]) slideUp([s,[e],[fn]]) slideToggle([s],[e],[fn]) // 淡入淡出 fadeIn([s],[e],[fn]) fadeOut([s],[e],[fn]) fadeTo([[s],o,[e],[fn]]) fadeToggle([s,[e],[fn]]) // 自定義(瞭解便可) animate(p,[s],[e],[fn])
jQuery.each(collection, callback(indexInArray, valueOfElement)):
一個通用的迭代函數,它能夠用來無縫迭代對象和數組。
li =[10,20,30,40] $.each(li,function(i, v){ console.log(i, v);//index是索引,ele是每次循環的具體元素。 }) 輸出: 010 120 230 340
.each(function(index, Element)):
描述:遍歷一個jQuery對象,爲每一個匹配元素執行一個函數。
.each()
方法用來迭代jQuery對象中的每個DOM元素。每次回調函數執行時,會傳遞當前循環次數做爲參數(從0開始計數)。因爲回調函數是在當前DOM元素爲上下文的語境中觸發的,因此關鍵字 this
老是指向這個元素。
// 爲每個li標籤添加foo $("li").each(function(){ $(this).addClass("c1"); });
注意: jQuery的方法返回一個jQuery對象,遍歷jQuery集合中的元素 - 被稱爲隱式迭代的過程。當這種狀況發生時,它一般不須要顯式地循環的 .each()
方法:
也就是說,上面的例子沒有必要使用each()方法,直接像下面這樣寫就能夠了:
$("li").addClass("c1"); // 對全部標籤作統一操做
注意:
在遍歷過程當中可使用 return false
提早結束each循環。
在匹配的元素集合中的全部元素上存儲任意相關數據或返回匹配的元素集合中的第一個元素的給定名稱的數據存儲的值。
.data(key, value):
描述:在匹配的元素上存儲任意相關數據。
$("div").data("k",100);//給全部div標籤都保存一個名爲k,值爲100
.data(key):
描述: 返回匹配的元素集合中的第一個元素的給定名稱的數據存儲的值—經過 .data(name, value)
或 HTML5 data-*
屬性設置。
$("div").data("k");//返回第一個div標籤中保存的"k"的值
.removeData(key):
描述:移除存放在元素上的數據,不加key參數表示移除全部保存的數據。
$("div").removeData("k"); //移除元素上存放k對應的數據
jQuery.extend(object)
jQuery的命名空間下添加新的功能。多用於插件開發者向 jQuery 中添加新函數時使用。