亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

章節
問答
課簽
筆記
評論
占位
占位

Sizzle選擇器

jQuery的定位就是一個DOM的操作庫,那么可想而知選擇器是一個至關重要的模塊。Sizzle,作為一個獨立全新的選擇器引擎,出現在jQuery 1.3版本之后,并被John Resig作為一個開源的項目,可以用于其他框架:Mool、Dojo、YUI等。

jQuery是總入口,選擇器支持9種方式的處理:

1.$(document)   
2.$('<div>’)
3.$('div')
4.$('#test')
5.$(function(){})
6.$("input:radio", document.forms[0]);
7.$('input', $('div'))
8.$()
9.$("<div>", {
         "class": "test",
         text: "Click me!",
         click: function(){ $(this).toggleClass("test"); }
      }).appendTo("body");
10.$($('.test'))

jQuery這個選擇器重構了幾次后,現在邏輯結構相當的清晰了,一看大概就知道,不能不說jQuery的反模式非職責單一深受開發者喜歡,一個接口承載的職責越多內部處理就越復雜了,jQuery查詢的對象是dom元素,查詢到目標元素后,如何存儲?

   ?  查詢的到結果儲存到jQuery對象內部,由于查詢的dom可能是單一元素,也可能是合集

   ?  jQuery內部應該要定義一個合集數組,用于存在選擇后的dom元素

   ?  當然啦,根據API,jQuery構建的不僅僅只是DOM元素,還有HTML字符串、Object、[] 等等…

看看入口的構造函數,如右側代碼:

init: function(selector, context, rootjQuery) {
     //如右側代碼
}

源碼縮進后的結構:

  ? 處理""、null、undefined、false、返回this、增加程序的健壯性

  ? 處理字符串

  ? 處理DOMElement,返回修改過后的實例對象this

  ? 處理$(function(){})

任務

?不會了怎么辦
||

提問題

寫筆記

公開筆記
提交
||

請驗證,完成請求

由于請求次數過多,請先驗證,完成再次請求

加群二維碼

打開微信掃碼自動綁定

您還未綁定服務號

綁定后可得到

  • · 粉絲專屬優惠福利
  • · 大咖直播交流干貨
  • · 課程更新,問題答復提醒
  • · 賬號支付安全提醒

收藏課程后,能更快找到我哦~

使用 Ctrl+D 可將課程添加到書簽

邀請您關注公眾號
關注后,及時獲悉本課程動態

舉報

0/150
提交
取消
全部 精華 我要發布
全部 我要發布
最熱 最新
只看我的

手記推薦

更多

本次提問將花費2個積分

你的積分不足,無法發表

為什么扣積分?

本次提問將花費2個積分

繼續發表請點擊 "確定"

為什么扣積分?