public
Created

A lite version of Slick.Finder for modern browsers/mobile.

  • Download Gist
Slick.Finder-lite.js
JavaScript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
/*
---
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;
 
})();

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.