⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dom.js

📁 Ajax下日志框架
💻 JS
📖 第 1 页 / 共 3 页
字号:
        var values = [];        var m = MochiKit.Base;        var self = MochiKit.DOM;        if (typeof(elem) == "undefined" || elem === null) {            elem = self._document;        } else {            elem = self.getElement(elem);        }        m.nodeWalk(elem, function (elem) {            var name = elem.name;            if (m.isNotEmpty(name)) {                var tagName = elem.nodeName;                if (tagName == "INPUT"                    && (elem.type == "radio" || elem.type == "checkbox")                    && !elem.checked                ) {                    return null;                }                if (tagName == "SELECT") {                    if (elem.selectedIndex >= 0) {                        var opt = elem.options[elem.selectedIndex];                        names.push(name);                        values.push((opt.value) ? opt.value : opt.text);                        return null;                    }                    // no form elements?                    names.push(name);                    values.push("");                    return null;                }                if (tagName == "FORM" || tagName == "P" || tagName == "SPAN"                    || tagName == "DIV"                ) {                    return elem.childNodes;                }                names.push(name);                values.push(elem.value || '');                return null;            }            return elem.childNodes;        });        return [names, values];    },    withDocument: function (doc, func) {        var self = MochiKit.DOM;        var oldDoc = self._document;        var rval;        try {            self._document = doc;            rval = func();        } catch (e) {            self._document = oldDoc;            throw e;        }        self._document = oldDoc;        return rval;    },    registerDOMConverter: function (name, check, wrap, /* optional */override) {        MochiKit.DOM.domConverters.register(name, check, wrap, override);    },    coerceToDOM: function (node, ctx) {        var im = MochiKit.Iter;        var self = MochiKit.DOM;        var iter = im.iter;        var repeat = im.repeat;        var imap = im.imap;        var domConverters = self.domConverters;        var coerceToDOM = self.coerceToDOM;        var NotFound = MochiKit.Base.NotFound;        while (true) {            if (typeof(node) == 'undefined' || node === null) {                return null;            }            if (typeof(node.nodeType) != 'undefined' && node.nodeType > 0) {                return node;            }            if (typeof(node) == 'number' || typeof(node) == 'boolean') {                node = node.toString();                // FALL THROUGH            }            if (typeof(node) == 'string') {                return self._document.createTextNode(node);            }            if (typeof(node.toDOM) == 'function') {                node = node.toDOM(ctx);                continue;            }            if (typeof(node) == 'function') {                node = node(ctx);                continue;            }            // iterable            var iterNodes = null;            try {                iterNodes = iter(node);            } catch (e) {                // pass            }            if (iterNodes) {                return imap(                    coerceToDOM,                    iterNodes,                    repeat(ctx)                );            }            // adapter            try {                node = domConverters.match(node, ctx);                continue;            } catch (e) {                if (e != NotFound) {                    throw e;                }            }            // fallback            return self._document.createTextNode(node.toString());        }        // mozilla warnings aren't too bright        return undefined;    },            setNodeAttribute: function (node, attr, value) {        var o = {};        o[attr] = value;        try {            return MochiKit.DOM.updateNodeAttributes(node, o);        } catch (e) {            // pass        }        return null;    },    getNodeAttribute: function (node, attr) {        var self = MochiKit.DOM;        var rename = self.attributeArray.renames[attr];        node = self.getElement(node);        try {            if (rename) {                return node[rename];            }            return node.getAttribute(attr);        } catch (e) {            // pass        }        return null;    },    updateNodeAttributes: function (node, attrs) {        var elem = node;        var self = MochiKit.DOM;        if (typeof(node) == 'string') {            elem = self.getElement(node);        }        if (attrs) {            var updatetree = MochiKit.Base.updatetree;            if (self.attributeArray.compliant) {                // not IE, good.                for (var k in attrs) {                    var v = attrs[k];                    if (typeof(v) == 'object' && typeof(elem[k]) == 'object') {                        updatetree(elem[k], v);                    } else if (k.substring(0, 2) == "on") {                        if (typeof(v) == "string") {                            v = new Function(v);                        }                        elem[k] = v;                    } else {                        elem.setAttribute(k, v);                    }                }            } else {                // IE is insane in the membrane                var renames = self.attributeArray.renames;                for (k in attrs) {                    v = attrs[k];                    var renamed = renames[k];                    if (k == "style" && typeof(v) == "string") {                        elem.style.cssText = v;                    } else if (typeof(renamed) == "string") {                        elem[renamed] = v;                    } else if (typeof(elem[k]) == 'object'                            && typeof(v) == 'object') {                        updatetree(elem[k], v);                    } else if (k.substring(0, 2) == "on") {                        if (typeof(v) == "string") {                            v = new Function(v);                        }                        elem[k] = v;                    } else {                        elem.setAttribute(k, v);                    }                }            }        }        return elem;    },    appendChildNodes: function (node/*, nodes...*/) {        var elem = node;        var self = MochiKit.DOM;        if (typeof(node) == 'string') {            elem = self.getElement(node);        }        var nodeStack = [            self.coerceToDOM(                MochiKit.Base.extend(null, arguments, 1),                elem            )        ];        var concat = MochiKit.Base.concat;        while (nodeStack.length) {            var n = nodeStack.shift();            if (typeof(n) == 'undefined' || n === null) {                // pass            } else if (typeof(n.nodeType) == 'number') {                elem.appendChild(n);            } else {                nodeStack = concat(n, nodeStack);            }        }        return elem;    },    replaceChildNodes: function (node/*, nodes...*/) {        var elem = node;        var self = MochiKit.DOM;        if (typeof(node) == 'string') {            elem = self.getElement(node);            arguments[0] = elem;        }        var child;        while ((child = elem.firstChild)) {            elem.removeChild(child);        }        if (arguments.length < 2) {            return elem;        } else {            return self.appendChildNodes.apply(this, arguments);        }    },    createDOM: function (name, attrs/*, nodes... */) {        /*            Create a DOM fragment in a really convenient manner, much like            Nevow's <http://nevow.com> stan.        */        var elem;        var self = MochiKit.DOM;        var m = MochiKit.Base;        if (typeof(attrs) == "string" || typeof(attrs) == "number") {            var args = m.extend([name, null], arguments, 1);            return arguments.callee.apply(this, args);        }        if (typeof(name) == 'string') {            // Internet Explorer is dumb            if (attrs && "name" in attrs && !self.attributeArray.compliant) {                // http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/name_2.asp                name = ('<' + name + ' name="' + self.escapeHTML(attrs.name)                    + '">');            }            elem = self._document.createElement(name);        } else {            elem = name;        }        if (attrs) {            self.updateNodeAttributes(elem, attrs);        }        if (arguments.length <= 2) {            return elem;        } else {            var args = m.extend([elem], arguments, 2);            return self.appendChildNodes.apply(this, args);        }    },    createDOMFunc: function (/* tag, attrs, *nodes */) {        var m = MochiKit.Base;        return m.partial.apply(            this,            m.extend([MochiKit.DOM.createDOM], arguments)        );    },    swapDOM: function (dest, src) {        var self = MochiKit.DOM;        dest = self.getElement(dest);        var parent = dest.parentNode;        if (src) {            src = self.getElement(src);            parent.replaceChild(src, dest);        } else {            parent.removeChild(dest);        }        return src;    },    getElement: function (id) {        var self = MochiKit.DOM;        if (arguments.length == 1) {            return ((typeof(id) == "string") ?                self._document.getElementById(id) : id);        } else {            return MochiKit.Base.map(self.getElement, arguments);        }    },    computedStyle: function (htmlElement, cssProperty, mozillaEquivalentCSS) {        if (arguments.length == 2) {            mozillaEquivalentCSS = cssProperty;        }           var self = MochiKit.DOM;        var el = self.getElement(htmlElement);        var document = self._document;        if (!el || el == document) {            return undefined;        }        if (el.currentStyle) {            return el.currentStyle[cssProperty];        }        if (typeof(document.defaultView) == 'undefined') {            return undefined;        }        if (document.defaultView === null) {            return undefined;        }        var style = document.defaultView.getComputedStyle(el, null);        if (typeof(style) == "undefined" || style === null) {            return undefined;        }        return style.getPropertyValue(mozillaEquivalentCSS);    },    getElementsByTagAndClassName: function (tagName, className,            /* optional */parent) {        var self = MochiKit.DOM;        if (typeof(tagName) == 'undefined' || tagName === null) {            tagName = '*';        }        if (typeof(parent) == 'undefined' || parent === null) {            parent = self._document;        }        parent = self.getElement(parent);        var children = (parent.getElementsByTagName(tagName)            || self._document.all);        if (typeof(className) == 'undefined' || className === null) {            return MochiKit.Base.extend(null, children);        }        var elements = [];        for (var i = 0; i < children.length; i++) {            var child = children[i];            var classNames = child.className.split(' ');            for (var j = 0; j < classNames.length; j++) {                if (classNames[j] == className) {                    elements.push(child);                    break;                }            }        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -