Skip to content

Instantly share code, notes, and snippets.

@1000ch
Last active December 16, 2015 21:39
Show Gist options
  • Save 1000ch/5501425 to your computer and use it in GitHub Desktop.
Save 1000ch/5501425 to your computer and use it in GitHub Desktop.
var rx = {
id: /^#([\w\-]+)$/,
className: /^\.([\w\-]+)$/,
tagName: /^[\w\-]+$/,
name: /^\[name=["']?([\w\-]+)["']?\]$/
};
var ConciseSelector = function(selector, context) {
var result, m;
if(!context) {
context = document;
}
if(m = rx.id.exec(selector)) {
result = [document.getElementById(m[1])];
} else if(m = rx.className.exec(selector)) {
result = context.getElementsByClassName(m[1]);
} else if(m = rx.tagName.exec(selector)) {
result = context.getElementsByTagName(m[1]);
} else if(m = rx.name.exec(selector)) {
result = context.getElementsByName(m[1]);
} else {
result = context.querySelectorAll(selector);
}
};
var $ = function(selector, context) {
return new ConciseSelector(selector, context);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment