歡迎使用CSDN markdown編輯器

2021-07-02 07:34:30 字數 3125 閱讀 6427

(function (w)

if (!r2.test(query) && !r1.test(query))

//呼叫原生選擇器

if (context.queryselector && false) else

if (isarray(ret) || iscollection(ret)) else }}

//自定義選擇器

function handle(query, context)

var part = parts.pop(); //篩選出最後乙個 pop() 方法將刪除陣列的最後乙個元素,把陣列長度減 1,並且返回它刪除的元素的值。如果陣列已經為空,則 pop() 不改變陣列,並返回 undefined 值。

var s = factory.create(part); //建立選擇器物件

if (!s) //如果建立選擇器失敗返回null

var ret = s.find(context);

//如有物件,從上下文context中查詢 包含字元part的物件,[返回可能是物件,也可能是物件陣列]

if (parts[0] && ret) //單個物件

for (var i = 0; i < ret.length; i++) //有匹配,加入返回列表

}if (ret2.length > 0) else

} else

}function filter(parts, node, ret, context) //如果建立失敗,返回null

var selector = s.find(context); //查詢物件

if (!selector) //未找到物件返回null

if (!isarray(selector) && !iscollection(selector)) //初始化容器物件陣列

for (var i = 0; i < selector.length; i++)

} else }}

return null; //未找到返回null

}function filter2(p, node)

parent = parent.parentnode;}}

return null;

}//a包含b

function contains(a, b) }}

return false;

};// contains = hascompare || rnative.test(docelem.contains) ?

// function (a, b) :

// function (a, b)

// }

// }

// return false;

// };

//根據查詢選擇符建立相應選擇器物件

var factory = else if (tagselector.test(query)) else if (classselector.test(query))

return null;}};

//id選擇器

function idselector(id)

idselector.prototype = ,

match: function (element)

};idselector.test = function (selector) ;

//元素選擇器

function tagselector(tagname)

tagselector.prototype = ,

match: function (element)

};tagselector.test = function (selector) ;

//類選擇器 如div.c1.c2 #id.c1.c2

function classselector(classname)

classselector.prototype = //建立失敗返回null

var elements = s.find(context);

if (!elements) //未找到物件返回null

var ret = ; //建立返回物件

if (!isarray(elements) && !iscollection(elements)) //初始物件陣列

for (var i = 0; i < elements.length; i++)

}if (ret.length < 1) else

},match: function (element)

var classname = this.classname;

var cname = ('|' + element.classname.replace(/[ ]+/g, '|') + '|').replace(/|+/g, '|');

for (var i = 0; i < classname.length; i++)

}return true;}};

classselector.test = function (selector) ;

//todo:屬性選擇器

function attributeselector(attr) ;

this.match = function (element) ;

}attributeselector.test = function (selector) ;

//是否陣列

function isarray(o)

function iscollection(o) else

//return o.tostring() == '[object htmlcollection]';

}w.$ || (w.$ = q);

})(window)

歡迎使用CSDN markdow

本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...

歡迎毛毛與妞妞使用CSDN markdown編輯器

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...

歡迎使用CSDN markdow1n編輯器

本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...