Optimized selector function

This commit is contained in:
Timothy Warren 2011-07-05 11:22:23 -04:00
parent 48ee0bde52
commit c8d8d16a7e
1 changed files with 17 additions and 2 deletions

19
kis.js
View File

@ -31,8 +31,23 @@
*/
$ = function (a)
{
var x;
if (typeof a !== "string"){ return a;}
var x = document.querySelectorAll(a);
//Pick the quickest method for each kind of selector
if(a.match(/^#([\w\-]+$)/))
{
return document.getElementById(a.split('#')[1]);
}
else if(a.match(/^([\w\-]+)$/))
{
x = document.getElementsByTagName(a);
}
else
{
x = document.querySelectorAll(a);
}
return (x.length === 1) ? x[0] : x;
};
@ -48,7 +63,7 @@
var support = {
attachEvent: typeof window.attachEvent === "function",
addEventListener: typeof window.addEventListener === "function",
querySelector: typeof document.querySelectorAll === "function",
querySelector: typeof document.querySelectorAll === "function"
};
$_.support = support;