Мне любопытно, почему jQuery.after() не связывает или не предоставляет вам новый элемент, который вы создаете с ним. Мне кажется, что это нужно, но я не эксперт и надеялся, что кто-то может пролить свет на то, почему это плохая идея. Вот пример, чтобы увидеть, что я хотел бы от .after():
Вот несколько разметки:
<div id="content1">
<p id="hello1">Hello</p>
</div>
<div id="content2">
<p id="hello2">Hello</p>
</div>
Здесь я хочу, но это заменяет "Hello" на "World!":
$('#hello1').after('<p />').text('World!');
Это выполняет эту работу, но это обязательно уродливо:
$('#hello2').after('<p />');
var $newParagraph = $('#content2 p').last();
$newParagraph.text('World');
Это лучше, но я не полностью продаю: (может быть, я должен быть?)
$('#hello1').after( $('<p />').text('World') );
Обратите внимание, что это, очевидно, упрощенный пример, то есть "<p> World! </p> " не то, что я хочу добавить, моя проблема в мире сложнее, чем это.
Спасибо за любые мысли.