Skip to content

Instantly share code, notes, and snippets.

@eikes
Created April 4, 2012 08:04

Revisions

  1. eikes revised this gist Apr 12, 2012. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion getElementsByClassName.polyfill.js
    Original file line number Diff line number Diff line change
    @@ -10,7 +10,7 @@ if (!document.getElementsByClassName) {
    return d.querySelectorAll("." + search);
    }
    if (d.evaluate) { // IE6, IE7
    pattern = ".//[contains(concat(' ', @class, ' '), ' " + search + " ')]";
    pattern = ".//*[contains(concat(' ', @class, ' '), ' " + search + " ')]";
    elements = d.evaluate(pattern, d, null, 0, null);
    while ((i = elements.iterateNext())) {
    results.push(i);
  2. eikes revised this gist Apr 12, 2012. 1 changed file with 23 additions and 23 deletions.
    46 changes: 23 additions & 23 deletions getElementsByClassName.polyfill.js
    Original file line number Diff line number Diff line change
    @@ -4,26 +4,26 @@
    // License: MIT License

    if (!document.getElementsByClassName) {
    document.getElementsByClassName = function(search) {
    if (document.querySelectorAll) { // IE8
    return document.querySelectorAll("." + search);
    }
    var elements, pattern, i, results = [];
    if (document.evaluate) { // IE6, IE7
    pattern = ".//[contains(concat(' ', @class, ' '), ' " + search + " ')]";
    elements = document.evaluate(pattern, document, null, 0, null);
    while ((i = elements.iterateNext())) {
    results.push(i);
    }
    } else {
    elements = document.getElementsByTagName("*");
    pattern = new RegExp("(^|\\s)" + search + "(\\s|$)");
    for (i = 0; i < elements.length; i++) {
    if ( pattern.test(elements[i].className) ) {
    results.push(elements[i]);
    }
    }
    }
    return results;
    }
    }
    document.getElementsByClassName = function(search) {
    var d = document, elements, pattern, i, results = [];
    if (d.querySelectorAll) { // IE8
    return d.querySelectorAll("." + search);
    }
    if (d.evaluate) { // IE6, IE7
    pattern = ".//[contains(concat(' ', @class, ' '), ' " + search + " ')]";
    elements = d.evaluate(pattern, d, null, 0, null);
    while ((i = elements.iterateNext())) {
    results.push(i);
    }
    } else {
    elements = d.getElementsByTagName("*");
    pattern = new RegExp("(^|\\s)" + search + "(\\s|$)");
    for (i = 0; i < elements.length; i++) {
    if ( pattern.test(elements[i].className) ) {
    results.push(elements[i]);
    }
    }
    }
    return results;
    }
    }
  3. eikes created this gist Apr 4, 2012.
    29 changes: 29 additions & 0 deletions getElementsByClassName.polyfill.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,29 @@
    // Add a getElementsByClassName function if the browser doesn't have one
    // Limitation: only works with one class name
    // Copyright: Eike Send http://eike.se/nd
    // License: MIT License

    if (!document.getElementsByClassName) {
    document.getElementsByClassName = function(search) {
    if (document.querySelectorAll) { // IE8
    return document.querySelectorAll("." + search);
    }
    var elements, pattern, i, results = [];
    if (document.evaluate) { // IE6, IE7
    pattern = ".//[contains(concat(' ', @class, ' '), ' " + search + " ')]";
    elements = document.evaluate(pattern, document, null, 0, null);
    while ((i = elements.iterateNext())) {
    results.push(i);
    }
    } else {
    elements = document.getElementsByTagName("*");
    pattern = new RegExp("(^|\\s)" + search + "(\\s|$)");
    for (i = 0; i < elements.length; i++) {
    if ( pattern.test(elements[i].className) ) {
    results.push(elements[i]);
    }
    }
    }
    return results;
    }
    }