精简版自定义 jquery

    function $(id) {
        var el = 'string' == typeof id ?
            document.getElementById(id) :
            id;

        el.on = function(event, fn) {
            if ('content loaded' == event) {
                event = window.attachEvent ? "load" : "DOMContentLoaded";
            }
            el.addEventListener ?
                el.addEventListener(event, fn, false) :
                el.attachEvent("on" + event, fn);
        };

        el.all = function(selector) {
            return $(el.querySelectorAll(selector));
        };

        el.each = function(fn) {
            for (var i = 0, len = el.length; i < len; ++i) {
                fn($(el[i]), i);
            }
        };

        el.getClasses = function() {
            return this.getAttribute('class').split(/s+/);
        };

        el.addClass = function(name) {
            var classes = this.getAttribute('class');
            el.setAttribute('class', classes ?
                classes + ' ' + name :
                name);
        };

        el.removeClass = function(name) {
            var classes = this.getClasses().filter(function(curr) {
                return curr != name;
            });
            this.setAttribute('class', classes.join(' '));
        };

        return el;
    }

    function search() {
        var str = $('search').value.toLowerCase();
        var links = $('files').all('a');

        links.each(function(link) {
            var text = link.textContent.toLowerCase();

            if ('..' == text) return;
            if (str.length && ~text.indexOf(str)) {
                link.addClass('highlight');
            } else {
                link.removeClass('highlight');
            }
        });
    }

    $(window).on('content loaded', function() {
        $('search').on('keyup', search);
    });
原文地址:https://www.cnblogs.com/webenh/p/7535322.html