У меня есть существующий HTML как;

<div id="maincontent">
        <div id="firstname_lbl"></div>
        <div id="firstname_fld"></div>
</div>

Я создаю форму JQuery динамически, как;

$('<' + items.type + '/>').attr({
        "action": items.action,
         "name": items.name,
         "class": items.attributes.class
        })

Теперь я хочу, чтобы этот элемент "form" стал родителем существующего элемента "maincontent".

Таким образом, DOM должен выглядеть следующим образом;

<form>
<div id="maincontent">
            <div id="firstname_lbl"></div>
            <div id="firstname_fld"></div>
    </div>
</form>

Как мне сделать это с помощью jQuery?

Также я получаю Ожидаемый идентификатор в IE для этой строки (отлично работает в Firefox);

var formEle = $('<' + items.type + '/>').attr({
        "action": items.action,
         "name": items.name,
         "class": items.attributes.class});
2
testndtv 30 Янв 2013 в 17:23

2 ответа

Лучший ответ

Вы должны использовать wrap:

var form = $("<" + items.type + "/>").attr({
    action: items.action,
    name: items.name,
    "class": items.attributes["class"]
});

$("#maincontent").wrap(form);
4
VisioN 30 Янв 2013 в 13:24

Отличное решение представлено здесь: Как переместить дочерний элемент от одного родителя к другому, используя jQuery.

Вот код:

(function($){
    $.fn.moveTo = function(selector){
        return this.each(function(){
            var cl = $(this).clone();
            $(cl).appendTo(selector);
            $(this).remove();
        });
    };
})(jQuery);

$('#maincontent').moveTo('[FormSelectorHere]');
0
Community 23 Май 2017 в 10:24