MoesTaverne.com - NoPaste

Paste js_getElementsByClassName (Pasted 3 years 76 days 23 hours 14 minutes 41 seconds ago - Views: 2162)
Name:
HellAngel
Language:
javascript
Description:
/**
* getElementsByClassName by Fabian Grutschus a.k.a crash
*
* @requires http://moestaverne.com/nopaste/index.php?js_indexOf
* @param string The className
* @param object The DOM-Node to search in (optional, when not set, uses document)
* @return nodelist The elements with the specified class name
*/

Code:

var getElementsByClassName = document.getElementsByClassName ? function (class_name, scope) {
        return [].slice.call((scope || document).getElementsByClassName(class_name));
    } : document.evaluate ? function (class_name, scope) {
        var re = [];
        var scope_doc = scope ? (!scope.ownerDocument ? scope : scope.ownerDocument) : document;
        var xpathResult = scope_doc.evaluate(".//*[contains(concat(' ', @class, ' '), ' " + class_name + " ')]", scope || document, null, 0, null);
        var ele;
        while ((ele = xpathResult.iterateNext()))
            re.push(ele)
        return re;
    } : function (class_name, scope) {
        var re = [];
        var elements = (scope || document).getElementsByTagName("*");
        for (var i = 0, ele; ele = elements[i]; i++)
            if (ele.className && ele.className.split(" ").indexOf(class_name) >= 0)
                re.push(ele);
        return re;
    };