国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

jQuery.prototype.init選擇器構造函數源碼思路分析

2024-05-06 14:19:41
字體:
來源:轉載
供稿:網友
一、源碼思路分析總結
概要:
jQuery的核心思想可以簡單概括為“查詢和操作dom”,今天主要是分析一下jQuery.prototype.init選擇器構造函數,處理選擇器函數中的參數;
這個函數的參數就是jQuery()===$()執行函數中的參數,可以先看我之前寫的淺析jQuery基礎框架一文,了解基礎框架后,再看此文。
思路分析:
以下是幾種jQuery的使用情況(用于查詢dom),每種情況都返回一個選擇器實例(習慣稱jQuery對象(一個nodeList對象),該對象包含查詢的dom節點):
1、處理 $(""), $(null), $(undefined), $(false)
如果參數為以上非法值,jQuery對象不包含dom節點
2、處理 $(DOMElement)
如果參數為節點元素,jQuery對象包含該參數節點元素,并分別增加屬性值為參數節點元素、1的context、length屬性和用[]訪問jQuery對象中dom節點的用法
例2.1:
代碼如下:
var obj = document.getElementById('container'),
jq = $(obj);

console.log(jq.length); //1
console.log(jq.context); //obj
console.log(jq.[0]); //obj

3、處理$(HTML字符串)
如果第一個參數為HTML字符串,jQuery對象包含由jQuery.clean函數創建的fragment文檔碎片中的childnodes節點
例3.1:
代碼如下:
var jqHTML = $('<h1>文章標題</h1><p>內容</p>');
console.log(jqHTML); //[<h1>,<p>];

如果第一個參數(HTML字符串)為一個空的單標簽,且第二個參數context為一個非空純對象
例3.2:
代碼如下:
var jqHTML = $('<div></div>', { class: 'css-class', data-name: 'data-val' });

console.log(jqHTML.attr['class']); //css-class
console.log(jqHTML.attr['data-name']); //data-val

4、處理$(#id)
如果第一個參數是一個#加元素id,jQuery對象包含唯一擁有該id的元素節點,
并分別增加屬性值為document、參數字符串、1、的context、selector、length屬性和用[]訪問jQuery對象中dom節點的用法
例4.1:
代碼如下:
var jq = $('#container');

console.log(jq.[0]); //包含的dom節點元素
console.log(jq.length); //1
console.log(jq.context); //document
console.log(jq.selector); //container

5、處理$(.className)
如果第一個參數是一個.className,jQuery對象中擁有class名為className的標簽元素,并增加一個屬性值為參數字符串、document的selector、context屬性
實際執行代碼為:
代碼如下:
return jQuery(document).find(className);

6、處理$(.className, context)
如果第一個參數是.className,第二個參數是一個上下文對象(可以是.className(等同于處理$(.className .className)),jQuery對象或dom節點),
jQuery對象包含第二個參數上下文對象中擁有class名為className的后代節點元素,并增加一個context和selector屬性
實際執行代碼為:
代碼如下:
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 河西区| 来宾市| 蓬莱市| 古丈县| 新邵县| 宁强县| 新余市| 灵台县| 淳安县| 龙山县| 南岸区| 鸡西市| 周口市| 太湖县| 芜湖市| 新闻| 万荣县| 手机| 社旗县| 临朐县| 海伦市| 双柏县| 佛山市| 侯马市| 修水县| 新昌县| 鹤壁市| 临沂市| 禹州市| 缙云县| 依安县| 沁源县| 民勤县| 兴安县| 江山市| 屯门区| 南川市| 尚志市| 天镇县| 铁岭市| 拜泉县|