Skip to content

Instantly share code, notes, and snippets.

@cyzanfar
Created May 15, 2015 19:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cyzanfar/807e5a9b85848107d422 to your computer and use it in GitHub Desktop.
Save cyzanfar/807e5a9b85848107d422 to your computer and use it in GitHub Desktop.
var $ = function (selector) {
var elements = [];
var classPosition = selector.split('').indexOf(".");
var idPosition = selector.split('').indexOf("#");
var selectorArray = selector.split("");
if ( classPosition === -1 && idPosition === -1){
var elementCollections = document.getElementsByTagName(selector);
for (var i = 0; i < elementCollections.length; i++) {
elements.push(elementCollections[i])
}
}else if (classPosition > -1 && idPosition === -1 ){
if (classPosition === 0) {
selectorArray.shift();
elements = document.getElementsByClassName(selectorArray.join(""));
}else {
var tagElem = selectorArray.slice(0,classPosition).join("");
elements.push(document.getElementsByTagName(tagElem)[0]);
}
}else if ( idPosition > -1 && classPosition === -1){
if (idPosition === 0) {
selectorArray.shift();
elements.push(document.getElementById(selectorArray.join("")));
}else {
var inputName = selectorArray.slice(0,idPosition).join("");
var elem = document.getElementsByTagName(inputName);
elements.push(elem);
}
}else if (idPosition > -1 && classPosition > -1){
if (idPosition < classPosition) {
var selectorIdTag = selectorArray.slice(idPosition,classPosition);
selectorIdTag.shift();
elements.push(document.getElementById(selectorIdTag.join("")));
}else{
var selectorClassTag = selectorArray.slice(classPosition,idPosition);
selectorClassTag.shift();
var firstElem = document.getElementsByClassName(selectorClassTag.join(""));
elements.push(firstElem[0])
}
}
return elements;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment