Учитывая ваш HTML:
<input type='button' onclick='addText();' value='Add To List'/>
<input type='text' id='input'/>
<div id="main-content">
<p>1st paragraph content.....</p>
<p>2nd paragraph content.....</p>
<p>3rd paragraph content.....</p>
</div>
И так как вы не упомянули JQuery я дать ответ с простым Javascript:
var appender=1;
function addText(){
var parentDiv = document.getElementById('main-content');
var input = document.getElementById('input').value;
var node = document.createElement("DIV");
var textnode = document.createTextNode(input);
node.appendChild(textnode);
node.id = 'custom-div_' + appender;
var child = parentDiv.children[2];
parentDiv.insertBefore(node, child);
appender++;
}
Вот рабочая demo
Обратите внимание, что существует глобальный var
, так что вы можете назначить различные идентификаторы для ваших динамически создаваемых элементов.
Редактировать
По желанию пользователя, следующий код будет добавить, что содержание под нагрузкой:
<body onload="addText()">
<div id="main-content">
<p>1st paragraph content.....</p>
<p>2nd paragraph content.....</p>
<p>3rd paragraph content.....</p>
</div>
</body>
Вот обновленный Javascript:
var appender=1;
function addText(){
var parentDiv = document.getElementById('main-content');
var node = document.createElement("DIV");
var textnode = document.createTextNode("This was added dinamically");
node.appendChild(textnode);
node.id = 'custom-div_' + appender;
var child = parentDiv.children[2];
parentDiv.insertBefore(node, child);
appender++;
}
Вот новый demo
Обратите внимание, что переменная appender не больше ne Я ухожу, если вы хотите объединить функциональность.
'' querySelectorAll' с п-м-child', а затем захватить элемент и 'insertBefore' следующий родственный. – elclanrs