#

API Docs for: 3.10.3
Show: Inherited Protected Private Deprecated

# File: node/js/node-imports.js

    /**
     * @module node
     * @submodule node-core
     */

    Y.Array.each([
        /**
         * Passes through to DOM method.
         * @for Node
         * @method removeChild
         * @param {HTMLElement | Node} node Node to be removed
         * @return {Node} The removed node
         */
        'removeChild',

        /**
         * Passes through to DOM method.
         * @method hasChildNodes
         * @return {Boolean} Whether or not the node has any childNodes
         */
        'hasChildNodes',

        /**
         * Passes through to DOM method.
         * @method cloneNode
         * @param {Boolean} deep Whether or not to perform a deep clone, which includes
         * subtree and attributes
         * @return {Node} The clone
         */
        'cloneNode',

        /**
         * Passes through to DOM method.
         * @method hasAttribute
         * @param {String} attribute The attribute to test for
         * @return {Boolean} Whether or not the attribute is present
         */
        'hasAttribute',

        /**
         * Passes through to DOM method.
         * @method scrollIntoView
         * @chainable
         */
        'scrollIntoView',

        /**
         * Passes through to DOM method.
         * @method getElementsByTagName
         * @param {String} tagName The tagName to collect
         * @return {NodeList} A NodeList representing the HTMLCollection
         */
        'getElementsByTagName',

        /**
         * Passes through to DOM method.
         * @method focus
         * @chainable
         */
        'focus',

        /**
         * Passes through to DOM method.
         * @method blur
         * @chainable
         */
        'blur',

        /**
         * Passes through to DOM method.
         * Only valid on FORM elements
         * @method submit
         * @chainable
         */
        'submit',

        /**
         * Passes through to DOM method.
         * Only valid on FORM elements
         * @method reset
         * @chainable
         */
        'reset',

        /**
         * Passes through to DOM method.
         * @method select
         * @chainable
         */
         'select',

        /**
         * Passes through to DOM method.
         * Only valid on TABLE elements
         * @method createCaption
         * @chainable
         */
        'createCaption'

    ], function(method) {
        Y.log('adding: ' + method, 'info', 'node');
        Y.Node.prototype[method] = function(arg1, arg2, arg3) {
            var ret = this.invoke(method, arg1, arg2, arg3);
            return ret;
        };
    });

    /**
     * Passes through to DOM method.
     * @method removeAttribute
     * @param {String} attribute The attribute to be removed
     * @chainable
     */
     // one-off implementation due to IE returning boolean, breaking chaining
    Y.Node.prototype.removeAttribute = function(attr) {
        var node = this._node;
        if (node) {
            node.removeAttribute(attr, 0); // comma zero for IE < 8 to force case-insensitive
        }

        return this;
    };

    Y.Node.importMethod(Y.DOM, [
        /**
         * Determines whether the node is an ancestor of another HTML element in the DOM hierarchy.
         * @method contains
         * @param {Node | HTMLElement} needle The possible node or descendent
         * @return {Boolean} Whether or not this node is the needle its ancestor
         */
        'contains',
        /**
         * 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
         * @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
         * @param {string} name The attribute name
         * @return {string} The attribute value
         */
        'getAttribute',

        /**
         * Wraps the given HTML around the node.
         * @method wrap
         * @param {String} html The markup to wrap around the node.
         * @chainable
         * @for Node
         */
        'wrap',

        /**
         * Removes the node's parent node.
         * @method unwrap
         * @chainable
         */
        'unwrap',

        /**
         * Applies a unique ID to the node if none exists
         * @method generateID
         * @return {String} The existing or generated ID
         */
        'generateID'
    ]);

    Y.NodeList.importMethod(Y.Node.prototype, [
    /**
     * Allows getting attributes on DOM nodes, normalizing in some cases.
     * This passes through to the DOM node, allowing for custom attributes.
     * @method getAttribute
     * @see Node
     * @for NodeList
     * @param {string} name The attribute name
     * @return {string} The attribute value
     */

        'getAttribute',
    /**
     * Allows setting attributes on DOM nodes, normalizing in some cases.
     * This passes through to the DOM node, allowing for custom attributes.
     * @method setAttribute
     * @see Node
     * @for NodeList
     * @chainable
     * @param {string} name The attribute name
     * @param {string} value The value to set
     */
        'setAttribute',

    /**
     * Allows for removing attributes on DOM nodes.
     * This passes through to the DOM node, allowing for custom attributes.
     * @method removeAttribute
     * @see Node
     * @for NodeList
     * @param {string} name The attribute to remove
     */
        'removeAttribute',
    /**
     * Removes the parent node from node in the list.
     * @method unwrap
     * @chainable
     */
        'unwrap',
    /**
     * Wraps the given HTML around each node.
     * @method wrap
     * @param {String} html The markup to wrap around the node.
     * @chainable
     */
        'wrap',

    /**
     * Applies a unique ID to each node if none exists
     * @method generateID
     * @return {String} The existing or generated ID
     */
        'generateID'
    ]);