jQuery: добавить дочерний элемент перед дочерним элементом

У меня есть такой HTML-код:

<div id="content">

    <div class="foobar"></div>
</div>

Я хочу добавить дочерние элементы внутри div#content перед элементом div.foobar. Как это сделать?


person Ziyaddin Sadigov    schedule 29.12.2013    source источник
comment
.prepend() твой друг.   -  person undefined    schedule 29.12.2013
comment
developer.mozilla.org/fr/docs/DOM/element.insertBefore   -  person leaf    schedule 29.12.2013
comment
@procrastinator Документация может быть пугающей, и именно для этого предназначен этот сайт. Во всяком случае, я сам гуглил, это был первый результат, и я получил свой ответ (или, по крайней мере, мне указали в правильном направлении), так что миссия выполнена.   -  person felwithe    schedule 06.06.2014


Ответы (2)


Прежде чем я отвечу на ваш вопрос, позвольте мне сделать кое-что более ясным и простым для вас, чтобы вы поняли, что вы пытаетесь

Добавить означает, что вы можете вставлять элементы как дочерние элементы в конце селектора.

пример append() and appendTo()

Начало означает, что вы можете вставлять элементы как дочерние элементы в начале селектора.

пример prepend() and prependTo()

Обратите внимание, что селектор будет рассматриваться как parent

Перед означает, что вы можете добавлять элементы непосредственно перед селектором.

пример before() and insertBefore()

После означает, что вы можете добавлять элементы сразу после селектора.

пример after() and insertAfter()

до и после does not рассматривать селектор как parent элемент

Теперь, чтобы ответить на ваш вопрос

Вы можете сделать это с помощью prepend or before

<div id="content">
    <div class="foobar"></div>
</div>

$("your element").insertBefore("#content div.foobar") // or
$("#content div.foobar").before("element") // or
$("#content").prepend("element") // or
$("element").prependTo("#content")

Обратите внимание на позиции селектора в prepend() and prependTo()

person niko    schedule 29.12.2013
comment
Мне нравится, как вы сначала объяснили функции. Спасибо - person Kenan; 09.02.2021

Вы можете использовать before()/insertBefore() как

$('#content .foobar').before(newcontent)
$(newcontent).insertBefore('#content .foobar')

или если вы хотите вставить новый контент в качестве первого потомка #content, используйте prepend()

$('#content').prepend(newcontent)
person Arun P Johny    schedule 29.12.2013
comment
Я предполагаю, что вы потеряли селектор и контент? это должно быть вставлено перед - person niko; 29.12.2013
comment
@niko Я думаю, что А правильно. единственная разница заключается в использовании метода. $(second).before(first) и $(first).insertBefore(second) - person Roko C. Buljan; 29.12.2013
comment
@RokoC.Buljan да, но второе утверждение должно быть вставлено до того, как я угадал? - person niko; 29.12.2013
comment
@niko ааа, да, теперь я это вижу. - person Roko C. Buljan; 29.12.2013
comment
@BlackSheep верно, но использует строковую переменную. - person Roko C. Buljan; 29.12.2013
comment
@RokoC.Buljan Да, это правда. - person undefined; 29.12.2013