2013-09-06 6 views
0
 var creatediv = document.createElement("div"); 

    var text1 = '<input id="attribute1" type="text" placeholder="Attribute" />  
    $(creatediv).append(text1); 


    var text3 = '<input id="attribute3" type="text" placeholder="Attribute" /> 
    $(creatediv).append(text3); 


    var Label = '<label id="label1"> test </label>'; 
    $(Label).Insertbefore(text3); 
    $(creatediv).append(Label); 

Создаем div с помощью вышеуказанного метода и добавляем текстовое поле и макет, как показано выше. моя проблема в том, когда я пытаюсь добавить ярлык.Добавить до последнего элемента при динамическом создании

Мне нужно добавить ярлык таким же образом перед текстом3 и сделать его div.

Я могу добавить текст после text1, но я не хочу этого делать. Как добавить и добавить в вышеуказанный сценарий?

Когда я добавляю его, он автоматически вставляется в последний. , когда я применяю только insert, прежде чем он не появится в моей DOM. как я могу сделать эту работу! Благодаря

+0

непонятно, чего вы хотите достичь, можете ли вы дать какой-то визуальный намек на то, как вы хотите, чтобы ваши элементы понравились. –

ответ

0

Вы должны попробовать

$(label).insertBefore('#attribute3'); 
+0

Нет, тем не менее, он не делает это в DOM, так как он не находится в div – Peru

+0

@Peru вы фактически добавляете свой div в дом вообще? – slash197

0

Во-первых, она должна быть insertBefore() - обратите внимание на нижний регистр i. Во-вторых, вы не добавляете div, который вы создаете для DOM вообще. Наконец, ваш код представляет собой нечетное сочетание родных JS и jQuery. Попробуйте вместо этого:

var $div = $('<div />').appendTo('body'); 
// you can change where the div is appended above 

var $text1 = $('<input />', { 
    id: 'attribute1', 
    type: 'text', 
    placeholder: 'Attribute' 
}); 
var $text3 = $('<input />', { 
    id: 'attribute3', 
    type: 'text' 
    placeholder: 'Attribute' 
}); 
$div.append(text1, text3); 

var $label = $('<label />', { 
    id: 'label1', 
    text: ' test ' 
}); 
$label.insertbefore($text3); 
0

После этой линии var Label = '<label id="label1"> test </label>';

$(creatediv).find('#attribute1').after($(Label)); ИЛИ

$(creatediv).find('#attribute3').before($(Label)); должен сделать трюк

0

Try следующий код.
var text1 = ''; var text3 = $ (''); var Label = 'test';

var container = $('<div></div>').appendTo($('body')); 
container.append(text1); 
container.append(text3); 
text3.before(Label); 
container.append(text3).before(Label); 
Смежные вопросы