47
// handle html strings 48
if ( typeof selector === "string" )
7475
// handle: $(expr, [context]) 76
// (which is just equivalent to: $(content).find(expr)
77} else 78
return jquery( context ).find( selector );
7980
// handle: $(function) 81
// shortcut for document ready
82} else
if ( jquery.isfunction( selector ) )
第48
行通過typeof
判斷引數是否為乙個字串,字串又有三種可能。
在第50
行通過正規表示式來判斷字串是否為乙個
id 或者乙個
html
的串。match
儲存匹配的結果。
第53
行判斷是否為
html
串,通過判斷是否滿足正規表示式的第乙個分組來判斷,是通過
jquery.clean
進行處理。返回結果儲存在
selector
中。否則的話,說明滿足了第三個分組,字串是乙個
id,從
61 行開始,進行
id 的處理,首先使用標準的
document.getelementbyid
通過id
來獲取物件的引用。但是,這個方法在
ie 和
opera
下有乙個問題,瀏覽器在沒有找到指定
id 的物件的時候,會再次尋找
name
屬性為這個
id 的物件,如果有的話,會返回
name
屬性為id
的物件,這樣就不一定是我們希望的結果了。在第
65 行進行判斷,如果找到的物件不是我們期望的物件,那麼重新使用
find
進行處理。
如果id
沒有問題,那麼將結果建立成乙個
jquery
物件,69
行說明如果沒有找到物件就使用乙個陣列物件來表示。再次使用
jquery()
函式,這次呼叫函式的引數就是乙個物件的引用,如果找到了,那麼這個引數就是找到的物件,如果沒有找到,引數就使乙個陣列物件。
如果找到了,那麼這個物件就一定有
nodetype
屬性,在上邊的分析中
(41-46
行)可以看到,
jquery
函式將返回乙個
jquery
物件,這個物件屬性為
0 的成員值就是找到的物件,還有乙個
length
的成員為
1, 另外有乙個
context
的成員同樣指向這個找到的物件。
如果沒有找到物件,那麼傳遞乙個陣列物件,這個物件的
length
屬性將為0。
對於陣列的處理將在下面看到。
第69
行中ret
將表示這個
jqeury
物件,然後,設定
context
屬性為當前的文件物件
document
,selector
為當前結果的選擇器。最後在第
72 行返回這個物件。
第77
行的else
用來處理字串的第三種可能,它對應
53 行的用來判斷
selector
是否為id
或者html
串的if
語句,也就是說不是
html
串,也不是
id的字串,那麼,只有一種可能,就是這是乙個
css
的選擇串。那麼通過第
78 行進行處理,直接返回。
82} else
if ( jquery.isfunction( selector ) )
83return jquery( document ).ready( selector );
第82
和83
行處理第三種可能:函式。
如果引數為乙個函式,那麼,首先通過
jquery( document )
獲取乙個表示
document
的jquery
物件,然後將函式設定這個物件的
ready
事件處理。
8485
// make sure that old selector state is passed along 86
if ( selector.selector && selector.context )
9091
return
this.setarray(jquery.isarray( selector ) ?
92selector :
93jquery.makearray(selector));
94},
86 行的
selector
為第57
行所獲得的通過
html
串得到的物件。如果這個物件有
selector
屬性和context
屬性,那麼複製到當前的物件上來。
91 行判斷這個
selector
物件是否為陣列物件,如果是,將這個物件上的陣列成員複製到當前物件上來,如果不是的話,首先通過
93 行的
makearray
建立成陣列物件。然後再複製到當前物件上來。
shiro學習筆記 4 ini 配置
shiro是從根物件securitymanager進行身份驗證和授權的 也就是所有操作都是自它開始的,這個物件是執行緒安全且真個應用只需要乙個即可,因此shiro提供了securityutils讓我們繫結它為全域性的,方便後續操作。因為shiro的類都是pojo的,因此都很容易放到任何ioc容器管理...
原始碼剖析 Hashtable 原始碼剖析
hashtable同樣是基於雜湊表實現的,同樣每個元素都是key value對,其內部也是通過單鏈表解決衝突問題,容量不足 超過了閾值 時,同樣會自動增長。hashtable也是jdk1.0引入的類,是執行緒安全的,能用於多執行緒環境中。hashtable同樣實現了serializable介面,它支...
python原始碼剖析 Python原始碼剖析
第頁共 頁python 原始碼剖析 物件機制 1.物件 在python 的世界中,一切都是物件,乙個整數是乙個物件,乙個字串也是 乙個物件,更為奇妙的是,型別也是乙個物件,整數型別是乙個物件,字串類 型也是乙個物件。從 年guido 在那個聖誕節揭開 python 世界的大幕開始,一直到現在,pyt...