Как я могу добавить элемент после другого элемента?


174

У меня есть определенное текстовое поле, и я хочу добавить div после него. Я попробовал.append() функцию, но это только добавляет div в элемент.

Например, у меня есть:

<input type="text" id="bla" />

и я хочу изменить это на:

<input type="text" id="bla" /><div id="space"></div>

Ответы:


289

попробуйте использовать after()метод:

$('#bla').after('<div id="space"></div>');

Документация


8
Методы .after () и .insertAfter () выполняют одну и ту же задачу.
Праздник

7
Это правильно, но это зависит от того, как вы предпочитаете его кодировать. Обычно я бы уже выделил вход «#bla», а затем добавил бы дополнительный контент. Чисто мои предпочтения, хотя, я не уверен, имеет ли какой-либо метод выигрыш в скорости.
Роуэн

37

пытаться

.insertAfter()

Вот

$(content).insertAfter('#bla');

17
Разве ваш код не должен быть больше похож на $('<div id="space"></div>').insertAfter('#bla'), чем $('#bla').insertAfter(content);?
Роуэн

6

Прежде всего, inputэлемент не должен иметь закрывающий тег (с http://www.w3.org/TR/html401/interact/forms.html#edef-INPUT : конечный тег: запрещен).

Во-вторых, вам нужна функция after(), а не append()функция.


Правильно, но это то, что происходит, когда я пытаюсь использовать функцию .append ().
скерит

2
Если это XHTML, то элемент ввода должен быть закрыт (но не с конечным тегом).
CiscoIPPhone

2
В HTML4 <input>не должно быть закрыто.
Дерек 朕 會 功夫

1

Решено jQuery: добавить элемент после другого элемента

<script>
$( "p" ).append( "<strong>Hello</strong>" );
</script>

ИЛИ

<script type="text/javascript"> 
jQuery(document).ready(function(){
jQuery ( ".sidebar_cart" ) .append( "<a href='http://#'>Continue Shopping</a>" );
});
</script>

2
Это неверно Это добавляет элемент в родительский элемент, как указано в OP. Попробуйте прочитать вопрос еще раз и пересмотреть свой ответ.
Эван Виланд
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.