Attribute: $("p").addClass(css中定義的樣式類型); 給某個元素添加樣式 $("img").attr({src:"test.jpg",alt:"test Image"}); 給某個元素添加屬性/值,參數是map $("img").attr("src","test.jpg"); 給某個元素添加屬性/值 $("img").attr("title", function() { return this.src }); 給某個元素添加屬性/值 $("元素名稱").html(); 獲得該元素內的內容(元素,文本等) $("元素名稱").html("<b>new stuff</b>"); 給某元素設定內容 $("元素名稱").removeAttr("屬性名稱") 給某元素刪除指定的屬性以及該屬性的值 $("元素名稱").removeClass("class") 給某元素刪除指定的樣式 $("元素名稱").text(); 獲得該元素的文本 $("元素名稱").text(value); 設定該元素的文本值為value $("元素名稱").toggleClass(class) 當元素存在參數中的樣式的時候取消,如果不存在就設定此樣式 $("input元素名稱").val(); 擷取input元素的值 $("input元素名稱").val(value); 設定input元素的值為value Manipulation: $("元素名稱").after(content); 在匹配元素後面新增內容 $("元素名稱").append(content); 將content作為元素的內容插入到該元素的後面 $("元素名稱").appendTo(content); 在content後接元素 $("元素名稱").before(content); 與after方法相反 $("元素名稱").clone(布林運算式) 當布林運算式為真時,複製元素(無參時,當作true處理) $("元素名稱").empty() 將該元素的內容設定為空白 $("元素名稱").insertAfter(content); 將該元素插入到content之後 $("元素名稱").insertBefore(content); 將該元素插入到content之前 $("元素").prepend(content); 將content作為該元素的一部分,放到該元素的最前面 $("元素").prependTo(content); 將該元素作為content的一部分,放content的最前面 $("元素").remove(); 刪除所有的指定元素 $("元素").remove("exp"); 刪除所有含有exp的元素 $("元素").wrap("html"); 用html來包圍該元素 $("元素").wrap(element); 用element來包圍該元素 Traversing: add(expr) add(html) add(elements) children(expr) contains(str) end() filter(expression) filter(filter) find(expr) is(expr) next(expr) not(el) not(expr) not(elems) parent(expr) parents(expr) prev(expr) siblings(expr) Core: $(html).appendTo("body") 相當於在body中寫了一段html代碼 $(elems) 獲得DOM上的某個元素 $(function(){……..}); 執行一個函數 $("div > p").css("border", "1px solid gray"); 尋找所有div的子節點p,添加樣式 $("input:radio", document.forms[0]) 在當前頁面的第一個表單中尋找所有的選項按鈕 $.extend(prop) prop是一個jQuery對象, 舉例: jQuery.extend({ min: function(a, b) { return a < b ? a : b; }, max: function(a, b) { return a > b ? a : b; } }); jQuery( expression, [context] ) ---$( expression, [context]); 在預設情況下,$()查詢的是當前HTML文檔中的DOM元素。 each( callback ) 以每一個匹配的元素作為上下文來執行一個函數 舉例:1 $("span").click(function){ $("li").each(function(){ $(this).toggleClass("example"); }); }); 舉例:2 $("button").click(function () { $("div").each(function (index, domEle) { // domEle == this $(domEle).css("backgroundColor", "yellow"); if ($(this).is("#stop")) { $("span").text("Stopped at div index #" + index); return false; } }); }); jQuery Event: ready(fn); $(document).ready()注意在body中沒有onload事件,否則該函數不能執行。在每個頁面中可以 有很多個函數被載入執行,按照fn的順序來執行。 bind( type, [data], fn ) 為每一個匹配元素的特定事件(像click)綁定一個或多個事件處理器函數。可能的事件屬性有:blur, focus, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, error one( type, [data], fn ) 為每一個匹配元素的特定事件(像click)綁定一個或多個事件處理器函數。在每個對 象上,這個事件處理函數只會被執行一次。其他規則與bind()函數相同。 trigger( type, [data] ) 在每一個匹配的元素上觸發某類事件。 triggerHandler( type, [data] ) 這一特定方法會觸發一個元素上特定的事件(指定一個事件類型),同時取消瀏覽器對此事件的預設行動 unbind( [type], [data] ) 反綁定,從每一個匹配的元素中刪除綁定的事件。 $("p").unbind() 移除所有段落上的所有綁定的事件 $("p").unbind( "click" ) 移除所有段落上的click事件 hover( over, out ) over,out都是方法, 當滑鼠移動到一個匹配的元素上面時,會觸發指定的第一個函數。當滑鼠移出這個元素時,會觸發指定的第二個函數。 $("p").hover(function(){ $(this).addClass("over"); }, function(){ $(this).addClass("out"); } ); toggle( fn, fn ) 如果點擊了一個匹配的元素,則觸發指定的第一個函數,當再次點擊同一元素時,則觸發指定的第二個函數。 $("p").toggle(function(){ $(this).addClass("selected"); }, function(){ $(this).removeClass("selected"); } ); 元素事件列表說明 註:不帶參數的函數,其參數為可選的 fn。jQuery不支援form元素的reset事件。 事件 描述 支援元素或對象 blur( ) 元素失去焦點 a, input, textarea, button, select, label, map, area change( ) 使用者改變域的內容 input, textarea, select click( ) 滑鼠點擊某個對象 幾乎所有元素 dblclick( ) 滑鼠雙擊某個對象 幾乎所有元素 error( ) 當載入文檔或映像時發生某個錯誤 window, img focus( ) 元素獲得焦點 a, input, textarea, button, select, label, map, area keydown( ) 某個鍵盤的鍵被按下 幾乎所有元素 keypress( ) 某個鍵盤的鍵被按下或按住 幾乎所有元素 keyup( ) 某個鍵盤的鍵被鬆開 幾乎所有元素 load( fn ) 某個頁面或映像被完成載入 window, img mousedown( fn ) 某個滑鼠按鍵被按下 幾乎所有元素 mousemove( fn ) 滑鼠被移動 幾乎所有元素 mouseout( fn ) 滑鼠從某元素移開 幾乎所有元素 mouseover( fn ) 滑鼠被移到某元素之上 幾乎所有元素 mouseup( fn ) 某個滑鼠按鍵被鬆開 幾乎所有元素 resize( fn ) 視窗或架構被調整尺寸 window, iframe, frame scroll( fn ) 滾動文檔的可視部分時 window select( ) 文本被選定 document, input, textarea submit( ) 提交按鈕被點擊 form unload( fn ) 使用者退出頁面 window JQuery Ajax 方法說明: load( url, [data], [callback] ) 裝入一個遠程HTML內容到一個DOM結點。 $("#feeds").load("feeds.html"); 將feeds.html檔案載入到id為feeds的div中 $("#feeds").load("feeds.php", {limit: 25}, function(){ alert("The last 25 entries in the feed have been loaded"); }); jQuery.get( url, [data], [callback] ) 使用GET請求一個頁面。 $.get("test.cgi", { name: "John", time: "2pm" }, function(data){ alert("Data Loaded: " + data); }); jQuery.getJSON( url, [data], [callback] ) 使用GET請求JSON資料。 $.getJSON("test.js", { name: "John", time: "2pm" }, function(json){ alert("JSON Data: " + json.users[3].name); }); jQuery.getScript( url, [callback] ) 使用GET請求JavaScript檔案並執行。 $.getScript("test.js", function(){ alert("Script loaded and executed."); }); jQuery.post( url, [data], [callback], [type] ) 使用POST請求一個頁面。 ajaxComplete( callback ) 當一個AJAX請求結束後,執行一個函數。這是一個Ajax事件 $("#msg").ajaxComplete(function(request, settings){ $(this).append("<li>Request Complete.</li>"); }); ajaxError( callback ) 當一個AJAX請求失敗後,執行一個函數。這是一個Ajax事件 $("#msg").ajaxError(function(request, settings){ $(this).append("<li>Error requesting page " + settings.url + "</li>"); }); ajaxSend( callback ) 在一個AJAX請求發送時,執行一個函數。這是一個Ajax事件 $("#msg").ajaxSend(function(evt, request, settings){ $(this).append("<li<Starting request at " + settings.url + "</li<"); }); ajaxStart( callback ) 在一個AJAX請求開始但還沒有啟用時,執行一個函數。這是一個Ajax事件 當AJAX請求開始(並還沒有啟用時)顯示loading資訊 $("#loading").ajaxStart(function(){ $(this).show(); }); ajaxStop( callback ) 當所有的AJAX都停止時,執行一個函數。這是一個Ajax事件 當所有AJAX請求都停止時,隱藏loading資訊。 $("#loading").ajaxStop(function(){ $(this).hide(); }); ajaxSuccess( callback ) 當一個AJAX請求成功完成後,執行一個函數。這是一個Ajax事件 當AJAX請求成功完成時,顯示資訊。 $("#msg").ajaxSuccess(function(evt, request, settings){ $(this).append("<li>Successful Request!</li>"); }); jQuery.ajaxSetup( options ) 為所有的AJAX請求進行全域設定。查看$.ajax函數取得所有選項資訊。 設定預設的全域AJAX請求選項。 $.ajaxSetup({ url: "/xmlhttp/", global: false, type: "POST" }); $.ajax({ data: myData }); serialize( ) 以名稱和值的方式串連一組input元素。實現了正確表單元素序列 function showValues() { var str = $("form").serialize(); $("#results").text(str); } $(":checkbox, :radio").click(showValues); $("select").change(showValues); showValues(); serializeArray( ) 串連所有的表單和表單元素(類似於.serialize()方法),但是返回一個JSON資料格式。 從form中取得一組值,顯示出來 function showValues() { var fields = $(":input").serializeArray(); alert(fields); $("#results").empty(); jQuery.each(fields, function(i, field){ $("#results").append(field.value + " "); }); } $(":checkbox, :radio").click(showValues); $("select").change(showValues); showValues(); JQuery Effects 方法說明 show( ) 顯示隱藏的匹配元素。 show( speed, [callback] ) 以優雅的動畫顯示所有匹配的元素,並在顯示完成後可選地觸發一個回呼函數。 hide( ) 隱藏所有的匹配元素。 hide( speed, [callback] ) 以優雅的動畫隱藏所有匹配的元素,並在顯示完成後可選地觸發一個回呼函數 toggle( ) 切換元素的可見狀態。如果元素是可見的,切換為隱藏的;如果元素是隱藏的, 切換為可見的。 slideDown( speed, [callback] ) 通過高度變化(向下增大)來動態地顯示所有匹配的元素,在顯示完成後可選 地觸發一個回呼函數。這個動畫效果只調整元素的高度,可以使匹配的元素以 "滑動"的方式顯示出來。 slideUp( speed, [callback] ) 通過高度變化(向上減小)來動態地隱藏所有匹配的元素,在隱藏完成後可選地 觸發一個回呼函數。這個動畫效果只調整元素的高度,可以使匹配的元素以"滑動" 的方式隱藏起來。 slideToggle( speed, [callback] ) 通過高度變化來切換所有匹配元素的可見度,並在切換完成後可選地觸發一個回 調函數。 這個動畫效果只調整元素的高度,可以使匹配的元素以"滑動"的方式隱 藏或顯示。 fadeIn( speed, [callback] ) 通過不透明度的變化來實現所有匹配元素的淡入效果,並在動畫完成後可選地觸 發一個回呼函數。 這個動畫只調整元素的不透明度,也就是說所有匹配的元素的 高度和寬度不會發生變化。 fadeOut( speed, [callback] ) 通過不透明度的變化來實現所有匹配元素的淡出效果,並在動畫完成後可選地觸 發一個回呼函數。 這個動畫只調整元素的不透明度,也就是說所有匹配的元素的 高度和寬度不會發生變化。 fadeTo( speed, opacity, [callback] ) 把所有匹配元素的不透明度以漸進方式調整到指定的不透明度,並在動畫完成 後可選地觸發一個回呼函數。 這個動畫只調整元素的不透明度,也就是說所 有匹配的元素的高度和寬度不會發生變化。 stop( ) 停止所有匹配元素當前正在啟動並執行動畫。如果有動畫處於隊列當中,他們就會立即開始。 queue( ) 取得第一個匹配元素的動畫序列的引用(返回一個內容為函數的數組) queue( callback ) 在每一個匹配元素的事件序列的末尾添加一個可執行函數,作為此元素的事件函數 queue( queue ) 以一個新的動畫序列代替所有匹配元素的原動畫序列 dequeue( ) 執行並移除動畫序列前端的動畫 animate( params, [duration], [easing], [callback] ) 用於建立自訂動畫的函數。 animate( params, options ) 建立自訂動畫的另一個方法。作用同上。 JQuery Traversing 方法說明 eq( index ) 從匹配的元素集合中取得一個指定位置的元素,index從0開始 filter( expr ) 返回與指定運算式匹配的元素集合,可以使用","號分割多個expr,用於實現多個條件式篩選 filter( fn ) 利用一個特殊的函數來作為篩選條件移除集合中不匹配的元素。 is( expr ) 用一個運算式來檢查當前選擇的元素集合,如果其中至少有一個元素符合這個給定的 運算式就返回true。 map( callback ) 將jQuery對象中的一組元素利用callback方法轉換其值,然後添加到一個jQuery數組中。 not( expr ) 從匹配的元素集合中刪除與指定的運算式匹配的元素。 slice( start, [end] ) 從匹配元素集合中取得一個子集,和內建的數組的slice方法相同。 add( expr ) 把與運算式匹配的元素添加到jQuery對象中。 children( [expr] ) 取得一個包含匹配的元素集合中每一個元素的所有子項目的元素集合。可選的過濾器 將使這個方法只匹配符合的元素(只包括元素節點,不包括文本節點)。 contents( ) 取得一個包含匹配的元素集合中每一個元素的所有子孫節點的集合(只包括元素節點,不 包括文本節點),如果元素為iframe,則取得其中的文件項目 find( expr ) 搜尋所有與指定運算式匹配的元素。 next( [expr] ) 取得一個包含匹配的元素集合中每一個元素緊鄰的後面同輩元素的元素集合。 nextAll( [expr] ) 取得一個包含匹配的元素集合中每一個元素所有的後面同輩元素的元素集合 parent( [expr] ) 取得一個包含著所有匹配元素的唯一父元素的元素集合。 parents( [expr] ) 取得一個包含著所有匹配元素的唯一祖先元素的元素集合(不包含根項目)。 prev( [expr] ) 取得一個包含匹配的元素集合中每一個元素緊鄰的前一個同輩元素的元素集合。 prevAll( [expr] ) 取得一個包含匹配的元素集合中每一個元素的之前所有同輩元素的元素集合。 siblings( [expr] ) 取得一個包含匹配的元素集合中每一個元素的所有同輩元素的元素集合。 andSelf( ) 將前一個匹配的元素集合添加到當前的集合中 取得所有div元素和其中的p元素,添加border類屬性。取得所有div元素中的p元素, 添加background類屬性 $("div").find("p").andSelf().addClass("border"); $("div").find("p").addClass("background"); end( ) 結束當前的操作,回到當前操作的前一個操作 找到所有p元素其中的span元素集合,然後返回p元素集合,添加css屬性 $("p").find("span").end().css("border", "2px red solid"); JQuery Selectors 方法說明 基本選取器 $("#myDiv") 匹配唯一的具有此id值的元素 $("div") 匹配指定名稱的所有元素 $(".myClass") 匹配具有此class樣式值的所有元素 $("*") 匹配所有元素 $("div,span,p.myClass") 聯合所有匹配的選取器 層疊選取器 $("form input") 後代選取器,選擇ancestor的所有子孫節點 $("#main > *") 子選取器,選擇parent的所有子節點 $("label + input") 臨選取器,選擇prev的下一個臨節點 $("#prev ~ div") 同胞選取器,選擇prev的所有同胞節點 基本過濾選取器 $("tr:first") 匹配第一個選擇的元素 $("tr:last") 匹配最後一個選擇的元素 $("input:not(:checked) + span")從原元素集合中過濾掉匹配selector的所有元素(這裡有是一個臨選取器) $("tr:even") 匹配集合中偶數位置的所有元素(從0開始) $("tr:odd") 匹配集合中奇數位置的所有元素(從0開始) $("td:eq(2)") 匹配集合中指定位置的元素(從0開始) $("td:gt(4)") 匹配集合中指定位置之後的所有元素(從0開始) $("td:gl(4)") 匹配集合中指定位置之前的所有元素(從0開始) $(":header") 匹配所有標題 $("div:animated") 匹配所有正在運行動畫的所有元素 內容過濾選取器 $("div:contains('John')") 匹配含有指定文本的所有元素 $("td:empty") 匹配所有空元素(只含有文本的元素不算空元素) $("div:has(p)") 從原元素集合中再次匹配所有至少含有一個selector的所有元素 $("td:parent") 匹配所有不為空白的元素(含有文本的元素也算) $("div:hidden") 匹配所有隱藏的元素,也包括表單的隱藏欄位 $("div:visible") 匹配所有可見的元素 屬性過濾選取器 $("div[id]") 匹配所有具有指定屬性的元素 $("input[name='newsletter']") 匹配所有具有指定屬性值的元素 $("input[name!='newsletter']") 匹配所有不具有指定屬性值的元素 $("input[name^='news']") 匹配所有指定屬性值以value開頭的元素 $("input[name$='letter']") 匹配所有指定屬性值以value結尾的元素 $("input[name*='man']") 匹配所有指定屬性值含有value字元的元素 $("input[id][name$='man']") 匹配同時符合多個選取器的所有元素 子項目過濾選取器 $("ul li:nth-child(2)"), $("ul li:nth-child(odd)"), 匹配父元素的第n個子項目 $("ul li:nth-child(3n + 1)") $("div span:first-child") 匹配父元素的第1個子項目 $("div span:last-child") 匹配父元素的最後1個子項目 $("div button:only-child") 匹配父元素的唯一1個子項目 表單元素選取器 $(":input") 匹配所有的表單輸入元素,包括所有類型的input, textarea, select 和 button $(":text") 匹配所有類型為text的input元素 $(":password") 匹配所有類型為password的input元素 $(":radio") 匹配所有類型為radio的input元素 $(":checkbox") 匹配所有類型為checkbox的input元素 $(":submit") 匹配所有類型為submit的input元素 $(":image") 匹配所有類型為image的input元素 $(":reset") 匹配所有類型為reset的input元素 $(":button") 匹配所有類型為button的input元素 $(":file") 匹配所有類型為file的input元素 $(":hidden") 匹配所有類型為hidden的input元素或表單的隱藏欄位 表單元素過濾選取器 $(":enabled") 匹配所有可操作的表單元素 $(":disabled") 匹配所有不可操作的表單元素 $(":checked") 匹配所有已點選的元素 $("select option:selected") 匹配所有已選擇的元素 JQuery CSS 方法說明 css( name ) 訪問第一個匹配元素的樣式屬性。 css( properties ) 把一個"名/值對"對象設定為所有匹配元素的樣式屬性。 $("p").hover(function () { $(this).css({ backgroundColor:"yellow", fontWeight:"bolder" }); }, function () { var cssObj = { backgroundColor: "#ddd", fontWeight: "", color: "rgb(0,40,244)" } $(this).css(cssObj); }); css( name, value ) 在所有匹配的元素中,設定一個樣式屬性的值。 offset( ) 取得匹配的第一個元素相對於當前可視視窗的位置。返回的對象有2個屬性, top和left,屬性值為整數。這個函數只能用於可見元素。 var p = $("p:last"); var offset = p.offset(); p.html( "left: " + offset.left + ", top: " + offset.top ); width( ) 取得當前第一匹配的元素的寬度值, width( val ) 為每個匹配的元素設定指定的寬度值。 height( ) 取得當前第一匹配的元素的高度值, height( val ) 為每個匹配的元素設定指定的高度值。 JQuery Utilities 方法說明 jQuery.browser .msie 表示ie jQuery.browser.version 讀取使用者瀏覽器的版本資訊 jQuery.boxModel 檢測使用者瀏覽器針對當前頁的顯示是否基於W3C CSS的盒模型 jQuery.isFunction( obj ) 檢測傳遞的參數是否為function function stub() { } var objs = [ function () {}, { x:15, y:20 }, null, stub, "function" ]; jQuery.each(objs, function (i) { var isFunc = jQuery.isFunction(objs[i]); $("span:eq( " + i + ")").text(isFunc); }); jQuery.trim( str ) 清除字串兩端的空格,使用Regex來清除給定字元兩端的空格 jQuery.each( object, callback ) 一個通用的迭代器,可以用來無縫迭代對象和數組 jQuery.extend( target, object1, [objectN] ) 擴充一個對象,修改原來的對象並返回,這是一個強大的實現繼承的 工具,這種繼承是採用傳值的方法來實現的,而不是JavaScript中的 原型鏈方式。 合并settings和options對象,返回修改後的settings對象 var settings = { validate: false, limit: 5, name: "foo" }; var options = { validate: true, name: "bar" }; jQuery.extend(settings, options); 合并defaults和options對象,defaults對象並沒有被修改。options對象中的值 代替了defaults對象的值傳遞給了empty。 var empty = {} var defaults = { validate: false, limit: 5, name: "foo" }; var options = { validate: true, name: "bar" }; var settings = $.extend(empty, defaults, options); jQuery.grep( array, callback, [invert] ) 通過一個篩選函數來去除數組中的項 $.grep( [0,1,2], function(n,i){ return n > 0; }); jQuery.makeArray( obj ) 將一個類似數組的對象轉化為一個真正的數組 將選取的div元素集合轉化為一個數組 var arr = jQuery.makeArray(document.getElementsByTagName("div")); arr.reverse(); // use an Array method on list of dom elements $(arr).appendTo(document.body); jQuery.map( array, callback ) 使用某個方法修改一個數組中的項,然後返回一個新的數組 jQuery.inArray( value, array ) 返回value在數組中的位置,如果沒有找到,則返回-1 jQuery.unique( array ) 刪除數組中的所有重複元素,返回整理後的數組 |