(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頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...