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 Документацията може да бъде плашеща и за това е този сайт. Както и да го потърсих в Google, това беше първият резултат и получих отговора си (или поне беше насочен в правилната посока), така че мисията е изпълнена.   -  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 вярно, но прави променлива String. - person Roko C. Buljan; 29.12.2013
comment
@RokoC.Buljan Да, вярно е. - person undefined; 29.12.2013