Created
January 18, 2012 00:10
-
-
Save arian/1629934 to your computer and use it in GitHub Desktop.
A lite version of Slick.Finder for modern browsers/mobile.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
--- | |
name: Slick.Finder | |
description: The new, superfast css selector engine. | |
provides: Slick.Finder | |
requires: Slick.Parser | |
... | |
*/ | |
(function(){ | |
// Slick | |
var Slick = (this.Slick || {}); | |
Slick.version = '1.1.6-light'; | |
// Slick finder | |
Slick.search = function(context, expression, append){ | |
var result = context.querySelectorAll(expression); | |
if (!append || !append.push) return result; | |
for (var i = 0; i < result.length; i++) append.push(result[i]); | |
return append; | |
}; | |
Slick.find = function(context, expression){ | |
return context.querySelector(expression); | |
}; | |
// Slick containment checker | |
Slick.contains = function(container, node){ | |
return container.contains(node); | |
}; | |
// Slick attribute getter | |
Slick.getAttribute = function(node, name){ | |
return node.getAttribute(name); | |
}; | |
Slick.hasAttribute = function(node, name){ | |
return node.hasAttribute(name); | |
}; | |
// Slick matcher | |
var documentElement = document.documentElement, | |
matchesSelectors = ['matchesSelector', 'webkitMatchesSelector', 'mozMatchesSelector'], | |
matchesSelector; | |
for (var i = 0; i < matchesSelectors.length; i++){ | |
if (typeof documentElement[matchesSelectors[i]] != 'undefined'){ | |
matchesSelector = matchesSelectors[i]; | |
break; | |
} | |
} | |
Slick.match = function(node, selector){ | |
if (!(node && selector)) return false; | |
if (!selector || selector === node) return true; | |
return node[matchesSelector](selector); | |
}; | |
// Slick attribute accessor | |
Slick.defineAttributeGetter = function(name, fn){ | |
// unimplemented | |
return this; | |
}; | |
Slick.lookupAttributeGetter = function(name){ | |
// unimplemented | |
return null; | |
}; | |
// Slick pseudo accessor | |
Slick.definePseudo = function(name, fn){ | |
// unimplemented | |
return this; | |
}; | |
Slick.lookupPseudo = function(name){ | |
// unimplemented | |
return null; | |
}; | |
// Slick overrides accessor | |
Slick.override = function(regexp, fn){ | |
// unimplemented | |
return this; | |
}; | |
Slick.isXML = function(){ | |
// unimplemented | |
return false; | |
}; | |
var uidx = 1; | |
Slick.uidOf = function(node){ | |
return node.uniqueNumber || (node.uniqueNumber = uidx++); | |
}; | |
if (!this.Slick) this.Slick = Slick; | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment