一、簡介
1.1、概述
隨著WEB2.0及ajax思想在互聯網上的快速發展傳播,陸續出現了一些優秀的Js框架,其中比較著名的有Prototype、 YUI、jQuery、mootools、Bindows以及國內的JSVM框架等,透過將這些JS框架應用到我們的專案中能夠使程式設計師從設計和書寫繁雜的JS應用中解脫出來,將關注點轉向功能需求而非實現細節上,從而提高專案的開發速度。
jQuery是繼prototype之後的另一個優秀的Javascript框架。它是由 John Resig 於 2006 年初創建的,它有助於簡化 JavaScript™ 以及Ajax 程式設計。有人用這樣的比喻來比較prototype和jQuery:prototype就像Java,而jQuery就像ruby. 它是一個簡潔快速靈活的JavaScript框架,它能讓你在你的網頁上簡單的操作文檔、處理事件、實現特效並為Web頁面添加Ajax互動。
它有以下一些特點:
程式碼簡練、語意易懂、學習快速、文件豐富。
jQuery是個輕量級的腳本,其程式碼非常小巧,最新版的JavaScript套件只有20K左右。
jQuery支援CSS1-CSS3,以及基本的xPath。
jQuery是跨瀏覽器的,它支援的瀏覽器包括IE 6.0 , FF 1.5 , Safari 2.0 , Opera 9.0 。
可以很容易的為jQuery擴充其他功能。
能將JS程式碼和HTML程式碼完全分離,方便程式碼和維護和修改。
外掛程式豐富,除了jQuery本身帶有的一些特效外,可以透過外掛程式實現更多功能,如表單驗證、tab導航、拖放效果、表格排序、DataGrid,樹狀選單、映像特效以及ajax上傳等。
jQuery的設計會改變你寫JavaScript程式碼的方式,降低你學習使用JS操作網頁的複雜度,提高網頁JS開發效率,無論對於js初學者還是資深專家,jQuery都將是您的首選。
jQuery適合於設計師、開發者以及那些還好者,同樣適合用於商業開發,可以說jQuery適合任何JavaScript應用的地方,可用於不同的Web應用程式中。
官方網站:http://jquery.com/ 中文網站:http://jquery.org.cn/
1.2、目的
透過學習本文檔,能夠對jQuery有一個簡單的認識了解,清楚JQuery與其他JS框架的不同,掌握jQuery的常用語法、使用技巧及注意事項。
二、使用方法
在需要使用JQuery的頁面中引入JQuery的js檔案即可。
例如:
引入之後便可在頁面的任意地方使用jQuery提供的語法。
三、學習教學及參考資料
請參考《jQuery中文API手冊》及http://jquery.org.cn/visual/cn/index. xml
推薦兩篇不錯的jquery教學:《jQuery的起點教學》和《使用jQuery 簡化Ajax 開發》
四、語法總結與注意事項
1、關於頁面元素的引用
透過jquery的$()引用元素包括透過id、class、元素名以及元素的層級關係及dom或者xpath條件等方法,且傳回的物件為jquery物件(集合物件),不能直接呼叫dom定義的方法。
2、jQuery物件與dom物件的轉換
只有jquery物件才能使用jquery定義的方法。注意dom物件和jquery物件是有差別的,呼叫方法時要注意操作的是dom物件還是jquery物件。
普通的dom物件一般可以透過$()轉換成jquery物件。
如:$(document.getElementById("msg"))則為jquery對象,可以使用jquery的方法。
由於jquery物件本身就是一個集合。所以如果jquery物件要轉換為dom物件則必須取出其中的某一項,一般可透過索引取出。
如:$("#msg")[0],$("div").eq(1)[0],$("div").get()[1],$("td" )[5]這些都是dom對象,可以使用dom中的方法,但不能再使用Jquery的方法。
以下幾種寫法都是正確的:
程式碼如下:
3、如何取得jQuery集合的某一項
對於取得的元素集合,取得其中的某一項(透過索引指定)可以使用eq或get(n)方法或索引號獲取,要注意,eq返回的是jquery對象,而get(n)和索引返回的是dom元素對象。對於jquery物件只能使用jquery的方法,而dom物件只能使用dom的方法,如要取得第三個
$("div") .eq(2).html(); //呼叫jquery物件的方法
$("div").get(2).innerHTML; //呼叫dom的方法屬性
4、同一函數實作set和get
Jquery中的許多方法都是如此,主要包括以下幾個:
$("#msg").html(); //傳回id為msg的元素節點的html內容。
$("#msg").html("new content");
//將「new content」 寫入作為html字串為msg的元素節點內容中,頁面顯示粗體的new content
$("#msg").text(); //傳回id為msg的元素節點的文字內容。
$("#msg").text("new content");
//將“new content” 作為普通文字字串寫入id為msg的元素節點內容中,頁面顯示new content
$("#msg").height(); //傳回id為msg的元素的高度
$("#msg").height("300"); //將id為msg的元素的高度設為300
$("#msg").width(); //傳回id為msg的元素的寬度
$("#msg").width("300"); //將id為msg的元素的寬度設為300
$("input").val(" ); //傳回表單輸入框的value值
$("input").val("test"); //將表單輸入框的value值設為test
$("# msg").click(); //觸發id為msg的元素的點選事件
$("#msg").click(fn); //為id為msg的元素點選事件新增函數
同樣blur,focus,select,submit事件都可以有這兩種呼叫方法
5、集合處理功能
對於jquery傳回的集合內容無需我們自己循環遍歷並對每個物件分別做處理,jquery已經為我們提供的很方便的方法進行集合的處理。
6、擴充我們需要的功能
$.extend({
min: function(a, b){return a max: function(a, b){return a > b?a :b; }
}); //為jquery擴展了min,max兩個方法
使用擴展的方法(透過「$.方法名稱」呼叫):
alert("a=10,b=20,max=" $.max(10,20) ",min=" $.min(10,20));
7、支援方法的連寫
所謂連寫,即可以對一個jquery物件連續呼叫各種不同的方法。複製程式碼
程式碼如下:
主要包括以下幾種方式:
複製程式碼
程式碼如下:
9、完善的事件處理功能
Jquery已經為我們提供了各種事件處理方法,我們無需在html元素上直接寫事件,而可以直接為透過jquery取得的物件新增事件。
如:
$("#msg") .click(function(){alert("good")}) //為元素新增了點選事件
$("p").click(function(i){this.style.color=['# f00','#0f0','#00f'][i]}) //為三個不同的p元素點擊事件分別設定不同的處理
jQuery中幾個自定義的事件:
(1)hover(fn1,fn2):模仿懸停事件(滑鼠移動到一個物件上面及移出這個物件)的方法。當滑鼠移動到一個符合的元素上面時,會觸發指定的第一個函數。當滑鼠移出這個元素時,會觸發指定的第二個函數。
//當滑鼠放在表格的某行上將class置為over,離開時置為out。
$("tr").hover(function(){
$(this).addClass("over");
},
function(){
$(this) .addClass("out");
});
(2)ready(fn):當DOM載入就緒可以查詢及操縱時綁定一個要執行的函數。
$(document).ready(>
$(document).ready(ert ("Load Success")})
//每次點擊時輪換新增並刪除名稱selected的class。
$("p").toggle(function(){
$(this).addClass("selected");
},function(){
$(this).removeClass( "selected");
(4)trigger(eventtype): 在每一個符合的元素上觸發某一類事件。
例如:
$("p").trigger("click"); //觸發所有p元素的click事件
(5)bind(eventtype,fn),unbind(eventtype ): 事件的綁定與反綁定
從每一個匹配的元素中(新增)刪除綁定的事件。
$("p"). bind("click", function(){alert($(this).text());});
//為每個p元素添加單擊事件
$("p").unbind (); //刪除所有p元素上的所有事件
10、幾個實用特效功能
其中toggle()和slidetoggle()方法提供了狀態切換功能。
如toggle()方法包含了hide()和show()方法。
slideToggle()方法包括了slideDown()和slideUp方法。
11、幾個有用的jQuery方法
$.browser.瀏覽器類型:偵測瀏覽器類型。有效參數:safari, opera, msie, mozilla。如檢測是否ie:$.browser.isie,是ie瀏覽器則回傳true。
$.each(obj, fn):通用的迭代函數。可用於近似地迭代物件和數組(代替循環)。
如
$.each( [0,1,2], function(i, n){ alert( "Item #" i ": " n ); });
var tempArr=[0,1,2] ;
for(var i=0;i
也可以處理json數據,如
$.each( { name: "John", lang: "JS" }, function(i, n){ alert( "Name: " i ", Value: " n ); });
結果為:
Name:name, Value:John
Name:lang, Value:JS
$.extend(target,prop1,propN):用一個或多個其他對象來擴展一個對象,返回這個被擴展的對象。這是jquery實作的繼承方式。
如:
$.extend(settings, options);
//合併settings和options,並將合併結果傳回settings中,相當於options繼承setting並將繼承結果保存在setting中。
var settings = $.extend({}, defaults, options);
//合併defaults和options,並將合併結果傳回setting而不覆蓋default內容。
可以有多個參數(合併多項並回傳)
$.map(array, fn):陣列映射。把一個陣列中的項目(處理轉換後)儲存到另一個新陣列中,並傳回產生的新陣列。
如:
var tempArr=$.map( [0,1,2], function(i){ return i 4; });
tempArr內容物為:[4,5,6]
var tempArr=$.map( [0,1,2], function(i){ return i > 0 ? i 1 : null; });
tempArr內容物為:[2,3]
$.merge(arr1,arr2):合併兩個陣列並刪除其中重複的項目。
如:
$.merge( [0,1,2], [2,3,4] ) //回傳[0,1,2,3,4]
$. trim(str):刪除字串兩端的空白字元。
如:
$.trim(" hello, how are you? "); //回傳"hello,how are you? "
12、解決自訂方法或其他類別庫與jQuery的衝突
很多時候我們自己定義了$(id)方法來取得一個元素,或者其他的一些js類別庫如prototype也都定義了$方法,如果同時把這些內容放在一起就會引起變數方法定義衝突,Jquery對此專門提供了方法來解決此問題。
使用jquery中的jQuery.noConflict();方法即可把變數$的控制權讓渡給第一個實作它的那個函式庫或之前自訂的$方法。之後應用Jquery的時候只要將所有的$換成jQuery即可,如原來引用物件方法$("#msg")改為jQuery("#msg")。
如:
jQuery.noflicjQuery.no; 🎜>// 開始使用jQuery
jQuery("div p").hide();
// 使用其他函式庫的$()
$("content").style.display = 'none ';
$("p").each(function(i){this.style.color=['#f00','#0f0','#00f'][i]})
/ /為索引分別為0,1,2的p元素分別設定不同的字體顏色。
$("tr").each(function(i){this.style.backgroundColor=['#ccc','#fff'][i%2]})
//實作表格的隔行換色效果
$("p").click(function(){alert($(this).html())})
//為每個p元素增加了click事件,按一下某個p元素則彈出其內容

理解JavaScript引擎內部工作原理對開發者重要,因為它能幫助編寫更高效的代碼並理解性能瓶頸和優化策略。 1)引擎的工作流程包括解析、編譯和執行三個階段;2)執行過程中,引擎會進行動態優化,如內聯緩存和隱藏類;3)最佳實踐包括避免全局變量、優化循環、使用const和let,以及避免過度使用閉包。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Python和JavaScript在社區、庫和資源方面的對比各有優劣。 1)Python社區友好,適合初學者,但前端開發資源不如JavaScript豐富。 2)Python在數據科學和機器學習庫方面強大,JavaScript則在前端開發庫和框架上更勝一籌。 3)兩者的學習資源都豐富,但Python適合從官方文檔開始,JavaScript則以MDNWebDocs為佳。選擇應基於項目需求和個人興趣。

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Linux新版
SublimeText3 Linux最新版

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。