Version 3.18.1
Show:

File: node/js/node-attrs.js

            /**
             * @module node
             * @submodule node-base
             */
            
            var Y_Node = Y.Node,
                Y_DOM = Y.DOM;
            
            /**
             * Static collection of configuration attributes for special handling
             * @property ATTRS
             * @static
             * @type object
             */
            Y_Node.ATTRS = {
                /**
                 * Allows for getting and setting the text of an element.
                 * Formatting is preserved and special characters are treated literally.
                 * @config text
                 * @type String
                 */
                text: {
                    getter: function() {
                        return Y_DOM.getText(this._node);
                    },
            
                    setter: function(content) {
                        Y_DOM.setText(this._node, content);
                        return content;
                    }
                },
            
                /**
                 * Allows for getting and setting the text of an element.
                 * Formatting is preserved and special characters are treated literally.
                 * @config for
                 * @type String
                 */
                'for': {
                    getter: function() {
                        return Y_DOM.getAttribute(this._node, 'for');
                    },
            
                    setter: function(val) {
                        Y_DOM.setAttribute(this._node, 'for', val);
                        return val;
                    }
                },
            
                'options': {
                    getter: function() {
                        return this._node.getElementsByTagName('option');
                    }
                },
            
                /**
                 * Returns a NodeList instance of all HTMLElement children.
                 * @readOnly
                 * @config children
                 * @type NodeList
                 */
                'children': {
                    getter: function() {
                        var node = this._node,
                            children = node.children,
                            childNodes, i, len;
            
                        if (!children) {
                            childNodes = node.childNodes;
                            children = [];
            
                            for (i = 0, len = childNodes.length; i < len; ++i) {
                                if (childNodes[i].tagName) {
                                    children[children.length] = childNodes[i];
                                }
                            }
                        }
                        return Y.all(children);
                    }
                },
            
                value: {
                    getter: function() {
                        return Y_DOM.getValue(this._node);
                    },
            
                    setter: function(val) {
                        Y_DOM.setValue(this._node, val);
                        return val;
                    }
                }
            };
            
            Y.Node.importMethod(Y.DOM, [
                /**
                 * Allows setting attributes on DOM nodes, normalizing in some cases.
                 * This passes through to the DOM node, allowing for custom attributes.
                 * @method setAttribute
                 * @for Node
                 * @for NodeList
                 * @chainable
                 * @param {string} name The attribute name
                 * @param {string} value The value to set
                 */
                'setAttribute',
                /**
                 * Allows getting attributes on DOM nodes, normalizing in some cases.
                 * This passes through to the DOM node, allowing for custom attributes.
                 * @method getAttribute
                 * @for Node
                 * @for NodeList
                 * @param {string} name The attribute name
                 * @return {string} The attribute value
                 */
                'getAttribute'
            
            ]);