Произошла ошибка.
Пожалуйста, обновите страницу.
Fly.js > Документация > Изменение DOM > $(...).replaceWith()

$(...).replaceWith()

Возвращает новую FlyNode, состоящую из узлов текущей, которые заменяются переданными элементами.

#Изменение DOM

$(...).replaceWith([source], node1, [node2], [nodeN])

                    FlyDomNode: {
                        __constructor: function(context) {
                            var array = fnNodeList.makeDomNodeArray(context);
                            for (var a = 0, al = array.length; a < al; a++) {
                                this[a] = array[a];
                            }
                            this.length = al;
                        },

                        size: function() {
                            return this.length;
                        },

                        get: function(index) {
                            return $.isNumber(index) ? this[index] : [].slice.call(this);
                        },

                        addNode: function(flyNode) {
                            return fnNodeList.changeNodeContext(this, flyNode, function(child, context) {
                                context.indexOf(child) === -1 && context.push(child);
                            });
                        },

                        removeNode: function(flyNode) {
                            return fnNodeList.changeNodeContext(this, flyNode, function(child, context) {
                                var position = context.indexOf(child);
                                if (position !== -1) context.splice(position, 1);
                            });
                        },

                        eq: function(index) {
                            if (index < 0) index = index + this.length;
                            return new this.__self(this[index]);
                        },

                        lt: function(index) {
                            return new this.__self(this.slice(0, index));
                        },

                        gt: function(index) {
                            return new this.__self(this.slice(index));
                        },

                        last: function(selector) {
                            var element = this[this.length - 1];
                            return new this.__self(fnStyle.isMatch(element, selector) ? element : []);
                        },

                        first: function(selector) {
                            var element = this[0];
                            return new this.__self(fnStyle.isMatch(element, selector) ? element : []);
                        },

                        normalize: function() {
                            return fnNodeList.transformNodeContext(this, function(item, context) {
                                if ($.isNode(item)) context.push(item);
                            });
                        },

                        each: function(callback, context) {
                            $.each(this, callback, context);
                            return this;
                        },

                        name: function() {
                            return this[0].tagName.toLowerCase() || null;
                        }
                    }
                

$(...).replaceWith([source], node1, [node2], [nodeN])
Возвращает: FlyNode [$]

Возвращает новую FlyNode, состоящую из узлов текущей, которые заменяются переданными элементами.

source (default false): Boolean !!

Флаг для работы с оригиналами узлов (без клонирования).

node1: Array [] or FlyNode [$] or Node <> or NodeList [<>] or String ABC

Узел для вставки.

node2: Array [] or FlyNode [$] or Node <> or NodeList [<>] or String ABC

Узел для вставки.

nodeN: Array [] or FlyNode [$] or Node <> or NodeList [<>] or String ABC

Узел для вставки.

Этот метод заменяет каждый узел текущей FlyNode на элементы, переданные в параметрах node1, node2, nodeN...

Параметры node1, node2, nodeN... могут быть представлены коллекцией или массивом узлов, одним узлом, объектом FlyNode или строкой с HTML кодом.

По умолчанию замена происходит на клонированные узлы. Чтобы работать с оригиналами, нужно выставить флаг source в true.

При замене происходит удаление всех обработчиков событий для узлов текущей FlyNode.

Пример: Смена тэгов внутри параграфа.

<!DOCTYPE html>
    <head>
        <meta charset="utf-8"/>
        <title>Fly.js - $(...).replaceWith()</title>

        <script src="/scripts/fly.js"></script>
    </head>
    <body>
        <button>Change tag!</button>
        <p>
            <b>Hello world!</b>
        </p>

        <script>
            var invert = {b: 'i', i: 'b'};

            $('button').on('click', function() {
                var current = $('p').children(),
                    tag = invert[current.tag()];

                current.replaceWith(true, '<' + tag + '>' + current.html() + '</' + tag + '>');
            });
        </script>
    </body>
</html>

Пример: Мультизамена одних узлов DOM на другие.

<!DOCTYPE html>
    <head>
        <meta charset="utf-8"/>
        <title>Fly.js - $(...).replaceWith()</title>

        <script src="/scripts/fly.js"></script>
    </head>
    <body>
        <div></div>
        <div></div>
        <div></div>

        <b>Hello</b><i> world!</i>

        <script>
            $('div').replaceWith($('b'), $('i'), '<br/>');
        </script>
    </body>
</html>