-
除此之外,如果頁面有多個ID相同,也只會返回文檔中第一次出現的元素。IE8之前在針對表單的處理時候,表單的name與id重名,并且name在id之前,則會返回表單元素: <input name="aaron" value="測試"> <div id="aaron">重名</div>查看全部
-
這就是一個標準的立即執行的匿名函數的標準寫法 (function(a,b){ b(a) }('a',function(s){ console.log(s) }) ) js的語法分析器規則是:當“()”作為一個運算符時(權威指南里有詳細的說明),里面填的都解釋為表達式,既然是表達式就有結果,這個結果就是一個無名函數的指針(或者說引用),這個指針在內存的函數棧里,然后再用“()”運行這個無名函數。跟先定義一個函數,然后用()調用它是一個道理。查看全部
-
1:jQuery.data(element,[key],[value]),每一個element都會有自己的一個{key:value}對象保存著數據,所以新建的對象就算有key相同它也不會覆蓋原來存在的對象key所對應的value,因為新對象保存是是在另一個{key:value}對象中 2:$("div").data("a","aaaa") 它是把數據綁定每一個匹配div節點的元素上 源碼可以看出來,說到底,數據緩存就是在目標對象與緩存體間建立一對一的關系,整個Data類其實都是圍繞著 thia.cache 內部的數據做增刪改查的操作。查看全部
-
JS的內存泄露,無怪乎就是從DOM中remove了元素,但是依然有變量或者對象引用了該DOM對象。然后內存中無法刪除。使得瀏覽器的內存占用居高不下。這種內存占用,隨著瀏覽器的刷新,會自動釋放。 而另外一種情況,就是循環引用,一個DOM對象和JS對象之間互相引用,這樣造成的情況更嚴重一些,即使刷新,內存也不會減少。這就是嚴格意義上說的內存泄露了。 所以在平時實際應用中, 我們經常需要給元素緩存一些數據,并且這些數據往往和DOM元素緊密相關。由于DOM元素(節點)也是對象, 所以我們可以直接擴展DOM元素的屬性,但是如果給DOM元素添加自定義的屬性和過多的數據可能會引起內存泄漏,所以應該要盡量避免這樣做。 因此更好的解決方法是使用一種低耦合的方式讓DOM和緩存數據能夠聯系起來。 所以我們必須有一種機制,避免引用數據直接依附在DOM對象上,這樣盡量避免內存泄漏的產生。jQuery的緩存系統就很好的解決了這一問題。查看全部
-
在構造函數中的return會返回什么呢? 1.可以返回一個對象,那么得到的是返回的對象; 2.其他的都是返回this所指代的對象;查看全部
-
原來原型的作用是實例間的公用...查看全部
-
先順序執行,最后執行回調查看全部
-
test查看全部
-
ready與load那一個先執行,那一個后執行?答案是ready先執行,load后執行。查看全部
-
這里要區分2個概念一個是匿名函數,一個是自執行。顧名思義,匿名函數,就是沒有函數名的函數,也就是不存在外部引用。查看全部
-
Write less,Do more !查看全部
-
設計該模式背后的主要動力是促進形成松散耦合。在這種模式中,并不是一個對象調用另一個對象的方法,而是一個對象訂閱另一個對象的特定活動并在狀態改變后獲得通知。 總的來說,觀察者模式所做的工作就是在解耦,讓耦合的雙方都依賴于抽象,而不是依賴于具體。從而使得各自的變化都不會影響到另一邊的變化。查看全部
-
觀察者的使用場合 觀察者的使用場合就是:當一個對象的改變需要同時改變其它對象,并且它不知道具體有多少對象需要改變的時候,就應該考慮使用觀察者模式。 組件開發為了保證組件可以在不同的項目中都適用,其必須是對其常用功能抽象出來加以實現,絕不會包含具體的業務邏輯而某一特定的項目使用者在其業務場景中使用組件時不可避免的要加入不同場景的業務邏輯。 疑問:有的時候,總是分不清楚哪些是功能哪些是業務邏輯查看全部
-
The Write Less,Do More(寫更少,做更多),無疑就是jQuery的核心理念,簡潔的API、優雅的鏈式、強大的查詢與便捷的操作。查看全部
-
一般選擇器的匹配模式(包括jq1.2之前),都是一個順序的思維方式,在需要遞進式匹配時,比如$(‘div span’) 這樣的匹配時,執行的操作都是先匹配頁面中div然后再匹配它的節點下的span標簽,之后返回結果。 Sizzle則采取了相反Right To Left的實現方式,先搜尋頁面中所有的span標簽,再在其后的操作中才去判斷它的父節點(包括父節點以上)是否為div,是則壓入數組,否則pass,進入下一判斷,最后返回該操作序列。查看全部
舉報
0/150
提交
取消