依讀了2周jQuery源碼的人感覺來說,完全理解jQuery,就拿jQuery 1.11這個版本10337行代碼來說,水平已經(jīng)很不錯了。謙虛點說,已經(jīng)入門。驕傲點,國內(nèi)領(lǐng)先水平。但其碼我感覺是js架構(gòu)之路起行的第一步,完全理解源碼,說明有獨立構(gòu)建或組織大型web前端框架的能力和基礎(chǔ)。然后看看完全理解jQuery是一個怎么樣的狀態(tài)。
文峰網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、自適應(yīng)網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)從2013年創(chuàng)立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。
看下面幾個鏈接就明白了:
RubyLouvre/avalon · GitHub
artDialog
aui/artDialog · GitHub(后來的新版代碼有所改變)
沒錯,這兩個里邊,就是在繼承jquery的基礎(chǔ)上做了自己的創(chuàng)新嘗試。
然后在看下面這位:
[原創(chuàng)] jQuery1.6.1源碼分析系列(停止更新)
是唯一出過jquery源碼分析書的一位:
《jQuery技術(shù)內(nèi)幕:深入解析jQuery架構(gòu)設(shè)計與實現(xiàn)原理》(高云)【摘要 書評 試讀】
然后在看這位:
jQuery 2.0.3 源碼分析系列
是目前一直在更新的一位,通俗有深度且版本比較新。
在說一下我2周閱讀jquery源碼的心得,初看源碼寫的惡心,再看寫的不錯,細看寫的真是精妙。然后今天在看ext 4.2的源碼,真是流暢易讀?;緛碚f,看懂jQuery源碼,以后的源碼學習之路可以說,平坦。
然后說是不是高手,高手只是一個自我定位的心理暗示,是一種人格魅力的體現(xiàn),是業(yè)務(wù)與技術(shù)的完美結(jié)合。個人感覺只能無限的接近,不能在有限的生命里邊到達。我們在通往目的地過程中享受一路的風景,這才是生命的意義。
然后在說前端,前端的核心是js,外圍打醬油的技術(shù)太多,不一一列舉。
css就像一瓶酒,得品。
html,css總共就那些標簽跟選擇器屬性什么的,但是要寫一個有擴展性,健壯性或維護性的頁面不容易?,F(xiàn)在寫頁面基本條件反射,不是如何快速的完成,而是思考如果有前端界面需求修改,怎么在修改代碼最少的情況下完成整體需求任務(wù)。
js就像一把劍,得磨。
js剛開始只是為了較驗,隨便技術(shù)社會的發(fā)展,承擔的角色越來越重,剛開始玩玩jQuery感覺已經(jīng)會js了,其實只是冰山一角。隨著對js的了解越來越多,他即變態(tài)又可愛,即好玩又難控,即有很多兼容問題,但解決兼容是我們基本生存之道。
人生就是一場夢,得作。
技術(shù)只是生活的一部分,曾經(jīng)雄心斗志,如今低頭寫碼。改變能改變的,接受不能改變的。人生有限,兄爭朝夕啊。
最后說,什么時候能閱讀jQuery源碼,我感覺其碼是純js編碼一年以上,js基礎(chǔ)知識沒有盲點。閱讀源碼,確實能學到很多東西。不只是技術(shù),而是一種生活的態(tài)度。一種把一件事情做到極致的態(tài)度
首先你需要獲取到每行,這個可以通過
$('table tr')來獲取。
然后我們可以使用each進行遍歷,在遍歷循環(huán)中進行比較同一行的兩列值。
獲取同一行的兩列值可以通過
$('table tr').each(function(){
if( $(this).find("td").eq(0) ==$(this).find("td").eq(1)){
}else{
//不想等,進行變色
$(this).find("td").eq(1).css("background","green")
}
})
經(jīng)過這樣的判斷,就可以對表格進行操作。
主要有兩個知識點。
一個是你要回jquery選擇器,可以獲取到想要比較的元素。
一個是你要回jquery操作css樣式。
這兩個都是jquery必會的基本用法,你需要打牢基礎(chǔ)了。
(function( window, undefined ) {
// Use the correct document accordingly with window argument (sandbox)
var document = window.document,
navigator = window.navigator,
location = window.location;
var jQuery = (function() { //第一個jQuery的作用是什么呢?是要給外面用的jQuery對象
// Define a local copy of jQuery
var jQuery = function( ) { //為什么又要一個jQuery?這是一個局部變量
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init( ); //怎么才能保證程序執(zhí)行這個代碼呢?順序執(zhí)行下來就會執(zhí)行這個代碼
},
//...
;
jQuery.fn = jQuery.prototype = {
constructor: jQuery,
init: function( selector, context, rootjQuery ) {
//...
return jQuery.makeArray( selector, this );
},
//...
};
// Give the init function the jQuery prototype for later instantiation
jQuery.fn.init.prototype = jQuery.fn; //這段代碼的作用是什么呢?為以后的實例準備jQuery原型構(gòu)造函數(shù)
//jQuery.fn.init 是構(gòu)造函數(shù), 它的實例方法由 jQuery.fn.init.prototype 指定
//...很多函數(shù)
return jQuery; //為什么要增加一個返回值呢?為了把局部變量復制給外面的全局變量
})();
// Expose jQuery to the global object
window.jQuery = window.$ = jQuery;
})(window);
在jquery的ajax請求中,是沒有辦法直接獲取正在進行這個狀態(tài)的,因為它是一個延續(xù)性的狀態(tài)。
但是你可以想辦法判斷是否在進行中。
比如你在beforeSend的時候定義狀態(tài)為開始,
在success后再把狀態(tài)改為結(jié)束。
那么再次之間,你只要判斷這個狀態(tài)是否為開始,既是進行了。
ajax知識點:
參數(shù)
options
類型:Object
可選。AJAX 請求設(shè)置。所有選項都是可選的。
async
類型:Boolean
默認值: true。默認設(shè)置下,所有請求均為異步請求。如果需要發(fā)送同步請求,請將此選項設(shè)置為 false。
注意,同步請求將鎖住瀏覽器,用戶其它操作必須等待請求完成才可以執(zhí)行。
beforeSend(XHR)
類型:Function
發(fā)送請求前可修改 XMLHttpRequest 對象的函數(shù),如添加自定義 HTTP 頭。
XMLHttpRequest 對象是唯一的參數(shù)。
這是一個 Ajax 事件。如果返回 false 可以取消本次 ajax 請求。
cache
類型:Boolean
默認值: true,dataType 為 script 和 jsonp 時默認為 false。設(shè)置為 false 將不緩存此頁面。
jQuery 1.2 新功能。
complete(XHR, TS)
類型:Function
請求完成后回調(diào)函數(shù) (請求成功或失敗之后均調(diào)用)。
參數(shù): XMLHttpRequest 對象和一個描述請求類型的字符串。
這是一個 Ajax 事件。
contentType
類型:String
默認值: "application/x-www-form-urlencoded"。發(fā)送信息至服務(wù)器時內(nèi)容編碼類型。
默認值適合大多數(shù)情況。如果你明確地傳遞了一個 content-type 給 $.ajax() 那么它必定會發(fā)送給服務(wù)器(即使沒有數(shù)據(jù)要發(fā)送)。
context
類型:Object
這個對象用于設(shè)置 Ajax 相關(guān)回調(diào)函數(shù)的上下文。也就是說,讓回調(diào)函數(shù)內(nèi) this 指向這個對象(如果不設(shè)定這個參數(shù),那么 this 就指向調(diào)用本次 AJAX 請求時傳遞的 options 參數(shù))。比如指定一個 DOM 元素作為 context 參數(shù),這樣就設(shè)置了 success 回調(diào)函數(shù)的上下文為這個 DOM 元素。
就像這樣:
$.ajax({ url: "test.html", context: document.body, success: function(){
$(this).addClass("done");
}});
data
類型:String
發(fā)送到服務(wù)器的數(shù)據(jù)。將自動轉(zhuǎn)換為請求字符串格式。GET 請求中將附加在 URL 后。查看 processData 選項說明以禁止此自動轉(zhuǎn)換。必須為 Key/Value 格式。如果為數(shù)組,jQuery 將自動為不同值對應(yīng)同一個名稱。如 {foo:["bar1", "bar2"]} 轉(zhuǎn)換為 'foo=bar1foo=bar2'。
dataFilter
類型:Function
給 Ajax 返回的原始數(shù)據(jù)的進行預(yù)處理的函數(shù)。提供 data 和 type 兩個參數(shù):data 是 Ajax 返回的原始數(shù)據(jù),type 是調(diào)用 jQuery.ajax 時提供的 dataType 參數(shù)。函數(shù)返回的值將由 jQuery 進一步處理。
dataType
類型:String
預(yù)期服務(wù)器返回的數(shù)據(jù)類型。如果不指定,jQuery 將自動根據(jù) HTTP 包 MIME 信息來智能判斷,比如 XML MIME 類型就被識別為 XML。在 1.4 中,JSON 就會生成一個 JavaScript 對象,而 script 則會執(zhí)行這個腳本。隨后服務(wù)器端返回的數(shù)據(jù)會根據(jù)這個值解析后,傳遞給回調(diào)函數(shù)??捎弥?
"xml": 返回 XML 文檔,可用 jQuery 處理。
"html": 返回純文本 HTML 信息;包含的 script 標簽會在插入 dom 時執(zhí)行。
"script": 返回純文本 JavaScript 代碼。不會自動緩存結(jié)果。除非設(shè)置了 "cache" 參數(shù)。注意:在遠程請求時(不在同一個域下),所有 POST 請求都將轉(zhuǎn)為 GET 請求。(因為將使用 DOM 的 script標簽來加載)
"json": 返回 JSON 數(shù)據(jù) 。
"jsonp": JSONP 格式。使用 JSONP 形式調(diào)用函數(shù)時,如 "myurl?callback=?" jQuery 將自動替換 ? 為正確的函數(shù)名,以執(zhí)行回調(diào)函數(shù)。
"text": 返回純文本字符串
error
類型:Function
默認值: 自動判斷 (xml 或 html)。請求失敗時調(diào)用此函數(shù)。
有以下三個參數(shù):XMLHttpRequest 對象、錯誤信息、(可選)捕獲的異常對象。
如果發(fā)生了錯誤,錯誤信息(第二個參數(shù))除了得到 null 之外,還可能是 "timeout", "error", "notmodified" 和 "parsererror"。
這是一個 Ajax 事件。
global
類型:Boolean
是否觸發(fā)全局 AJAX 事件。默認值: true。設(shè)置為 false 將不會觸發(fā)全局 AJAX 事件,如 ajaxStart 或 ajaxStop 可用于控制不同的 Ajax 事件。
ifModified
類型:Boolean
僅在服務(wù)器數(shù)據(jù)改變時獲取新數(shù)據(jù)。默認值: false。使用 HTTP 包 Last-Modified 頭信息判斷。在 jQuery 1.4 中,它也會檢查服務(wù)器指定的 'etag' 來確定數(shù)據(jù)沒有被修改過。
jsonp
類型:String
在一個 jsonp 請求中重寫回調(diào)函數(shù)的名字。這個值用來替代在 "callback=?" 這種 GET 或 POST 請求中 URL 參數(shù)里的 "callback" 部分,比如 {jsonp:'onJsonPLoad'} 會導致將 "onJsonPLoad=?" 傳給服務(wù)器。
jsonpCallback
類型:String
為 jsonp 請求指定一個回調(diào)函數(shù)名。這個值將用來取代 jQuery 自動生成的隨機函數(shù)名。這主要用來讓 jQuery 生成度獨特的函數(shù)名,這樣管理請求更容易,也能方便地提供回調(diào)函數(shù)和錯誤處理。你也可以在想讓瀏覽器緩存 GET 請求的時候,指定這個回調(diào)函數(shù)名。
password
類型:String
用于響應(yīng) HTTP 訪問認證請求的密碼
processData
類型:Boolean
默認值: true。默認情況下,通過data選項傳遞進來的數(shù)據(jù),如果是一個對象(技術(shù)上講只要不是字符串),都會處理轉(zhuǎn)化成一個查詢字符串,以配合默認內(nèi)容類型 "application/x-www-form-urlencoded"。如果要發(fā)送 DOM 樹信息或其它不希望轉(zhuǎn)換的信息,請設(shè)置為 false。
scriptCharset
類型:String
只有當請求時 dataType 為 "jsonp" 或 "script",并且 type 是 "GET" 才會用于強制修改 charset。通常只在本地和遠程的內(nèi)容編碼不同時使用。
success
類型:Function
請求成功后的回調(diào)函數(shù)。
參數(shù):由服務(wù)器返回,并根據(jù) dataType 參數(shù)進行處理后的數(shù)據(jù);描述狀態(tài)的字符串。
這是一個 Ajax 事件。
traditional
類型:Boolean
如果你想要用傳統(tǒng)的方式來序列化數(shù)據(jù),那么就設(shè)置為 true。請參考工具分類下面的 jQuery.param 方法。
timeout
類型:Number
設(shè)置請求超時時間(毫秒)。此設(shè)置將覆蓋全局設(shè)置。
type
類型:String
默認值: "GET")。請求方式 ("POST" 或 "GET"), 默認為 "GET"。注意:其它 HTTP 請求方法,如 PUT 和 DELETE 也可以使用,但僅部分瀏覽器支持。
url
類型:String
默認值: 當前頁地址。發(fā)送請求的地址。
username
類型:String
用于響應(yīng) HTTP 訪問認證請求的用戶名。
xhr
類型:Function
需要返回一個 XMLHttpRequest 對象。默認在 IE 下是 ActiveXObject 而其他情況下是 XMLHttpRequest 。用于重寫或者提供一個增強的 XMLHttpRequest 對象。這個參數(shù)在 jQuery 1.3 以前不可用。
回調(diào)函數(shù)
如果要處理 $.ajax() 得到的數(shù)據(jù),則需要使用回調(diào)函數(shù):beforeSend、error、dataFilter、success、complete。
beforeSend
在發(fā)送請求之前調(diào)用,并且傳入一個 XMLHttpRequest 作為參數(shù)。
error
在請求出錯時調(diào)用。傳入 XMLHttpRequest 對象,描述錯誤類型的字符串以及一個異常對象(如果有的話)
dataFilter
在請求成功之后調(diào)用。傳入返回的數(shù)據(jù)以及 "dataType" 參數(shù)的值。并且必須返回新的數(shù)據(jù)(可能是處理過的)傳遞給 success 回調(diào)函數(shù)。
success
當請求之后調(diào)用。傳入返回后的數(shù)據(jù),以及包含成功代碼的字符串。
complete
當請求完成之后調(diào)用這個函數(shù),無論成功或失敗。傳入 XMLHttpRequest 對象,以及一個包含成功或錯誤代碼的字符串。
首先說jQuery是一個js庫,它封裝了很多js的功能,并且將兼容性都給做好了,里面有的功能包括ajax ,dom bom。
ajax:這個你自己上網(wǎng)搜索下就知道,這個技術(shù)就是能實現(xiàn)頁面局部刷新,一般使用場景就是有些數(shù)據(jù)或者展示的東西沒必要頁面加載的時候就展示,用戶異步加載數(shù)據(jù)
bom 就是包括window, document,history,location等等的一些預(yù)設(shè)的js變量,比如location location.href 這個就是獲取當前頁面的url,這些都是js給我們提供的原生的函數(shù)()
dom dom就指頁面的html元素吧
bom跟dom的關(guān)系 通過bom來操作dom
比如document.getElementById("elem") document就是bom里面的對象,通過這個對象的getElementById或者了id叫elem的dom元素,獲取了元素之后我們可以為dom增加事件,比如最簡單的onclick事件
學到什么程度才學jQuery的話這個不好說,我覺得你至少將bom dom能理解清楚了,再去用jQuery吧
javascript里面,+代表的是數(shù)字之間的“加”和字符串之間的“連接”作用。
這里很明顯,前后都是字符串,起的是連接作用,目的是將這個變量的值和前后字符串連接在一起,做為jquery對象的選擇條件,并用選擇器將滿足這個條件的html標簽捕捉到,返回一個jquery對象。這是javascript知識。
當前名稱:jquery知識點,jquery重點筆記
文章鏈接:http://sd-ha.com/article28/dsespcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、響應(yīng)式網(wǎng)站、微信小程序、手機網(wǎng)站建設(shè)、網(wǎng)站制作、品牌網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)