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

174

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

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

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

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

<input type="text" id="bla" /><div id="space"></div>
skerit
источник

Ответы:

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()функция.

naivists
источник
Правильно, но это то, что происходит, когда я пытаюсь использовать функцию .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. Попробуйте прочитать вопрос еще раз и пересмотреть свой ответ.
Эван Виланд