Skip to content

Instantly share code, notes, and snippets.

@armandocanals
Last active July 27, 2017 15:30

Revisions

  1. armandocanals revised this gist Jul 15, 2014. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion getElementsByClassName.js
    Original file line number Diff line number Diff line change
    @@ -20,4 +20,4 @@ function getElementsByClassName(className) {
    return matches;

    }
    getElementsByClassName('central-featured-lang');
    getElementsByClassName('some-class');
  2. armandocanals renamed this gist Jul 15, 2014. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  3. armandocanals revised this gist Oct 15, 2013. 1 changed file with 16 additions and 18 deletions.
    34 changes: 16 additions & 18 deletions getElementsByClassName
    Original file line number Diff line number Diff line change
    @@ -1,25 +1,23 @@
    function getElementsByClassName(className) {
    var elements = document.body.children,
    elArr = Array.prototype.slice.apply(elements),
    results = [];
    var elements = document.body,
    matches = [];

    function inspect(node, results) {
    if(node.getAttribute && node.getAttribute('class')) {
    if(node.getAttribute('class').split(" ").indexOf(className) >= 0) {
    results.push(node);
    function traverse(node) {
    for(var i = 0; i < node.childNodes.length; i++) {
    if(node.childNodes[i].childNodes.length > 0) {
    traverse(node.childNodes[i]);
    }

    if(node.childNodes[i].getAttribute && node.childNodes[i].getAttribute('class')) {
    if(node.childNodes[i].getAttribute('class').split(" ").indexOf(className) >= 0) {
    matches.push(node.childNodes[i]);
    }
    }
    };
    };

    elArr.forEach(function(x) {
    inspect(x, results);
    for(var i = 0; i < x.childNodes.length; i++) {
    var node = x.childNodes[i];
    inspect(node, results);
    }
    });

    return results;
    }

    traverse(elements);
    return matches;

    }
    getElementsByClassName('central-featured-lang');
  4. armandocanals revised this gist Oct 15, 2013. 1 changed file with 14 additions and 12 deletions.
    26 changes: 14 additions & 12 deletions getElementsByClassName
    Original file line number Diff line number Diff line change
    @@ -1,21 +1,23 @@
    function getElementsByClassName(className) {
    var elements = document.body.children,
    elArr = Array.prototype.slice.apply(elements),
    results = [],
    tree = [];
    elArr = Array.prototype.slice.apply(elements),
    results = [];

    function inspect(node, results) {
    if(node.getAttribute && node.getAttribute('class')) {
    if(node.getAttribute('class').split(" ").indexOf(className) >= 0) {
    results.push(node);
    }
    };
    };

    elArr.forEach(function(x) {
    tree.push(x)
    inspect(x, results);
    for(var i = 0; i < x.childNodes.length; i++) {
    tree.push(x.childNodes[i]);
    var node = x.childNodes[i];
    inspect(node, results);
    }
    });
    tree.forEach(function(item) {
    if(item.getAttribute && item.getAttribute('class')) {
    if(item.getAttribute('class').indexOf(className) >= 0) {
    results.push(item);
    }
    };
    });

    return results;

  5. armandocanals revised this gist Oct 15, 2013. 1 changed file with 4 additions and 4 deletions.
    8 changes: 4 additions & 4 deletions getElementsByClassName
    Original file line number Diff line number Diff line change
    @@ -3,19 +3,19 @@ function getElementsByClassName(className) {
    elArr = Array.prototype.slice.apply(elements),
    results = [],
    tree = [];
    elArr.forEach(function(x, idx) {
    elArr.forEach(function(x) {
    tree.push(x)
    for(var i = 0; i < x.childNodes.length; i++) {
    tree.push(x.childNodes[i]);
    }
    })
    tree.forEach(function(item,index) {
    });
    tree.forEach(function(item) {
    if(item.getAttribute && item.getAttribute('class')) {
    if(item.getAttribute('class').indexOf(className) >= 0) {
    results.push(item);
    }
    };
    })
    });

    return results;

  6. armandocanals created this gist Oct 14, 2013.
    23 changes: 23 additions & 0 deletions getElementsByClassName
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,23 @@
    function getElementsByClassName(className) {
    var elements = document.body.children,
    elArr = Array.prototype.slice.apply(elements),
    results = [],
    tree = [];
    elArr.forEach(function(x, idx) {
    tree.push(x)
    for(var i = 0; i < x.childNodes.length; i++) {
    tree.push(x.childNodes[i]);
    }
    })
    tree.forEach(function(item,index) {
    if(item.getAttribute && item.getAttribute('class')) {
    if(item.getAttribute('class').indexOf(className) >= 0) {
    results.push(item);
    }
    };
    })

    return results;

    }
    getElementsByClassName('central-featured-lang');