Добавление HTML-элементов с помощью JavaScript
Итак, если у меня есть HTML, как это:
<div id='div'>
<a>Link</a>
<span>text</span>
</div>
Как я могу использовать JavaScript для добавления элемента HTML, где эта пустая строка?
6 ответов
поскольку вы не упоминали об использовании библиотек javascript (например, jquery, dojo), вот что-то чистое javascript.
var txt = document.createTextNode(" This text was added to the DIV.");
var parent = document.getElementById('div');
parent.insertBefore(txt, parent.lastChild);
или
var link = document.createElement('a');
link.setAttribute('href', 'mypage.htm');
var parent = document.getElementById('div');
parent.insertAfter(link, parent.firstChild);
Удачи В Кодировании.
node = document.getElementById('YourID');
node.insertAdjacentHTML('afterend', '<div>Sample Div</div>');
Доступные Варианты
beforebegin, afterbegin, beforeend, afterend
вместо того, чтобы иметь дело с <div>
дети, как и другие ответы, если вы знаете, что всегда хотите вставить после <a>
элемент, дайте ему идентификатор, а затем вы можете вставить относительно его братьев и сестер:
<div id="div">
<a id="div_link">Link</a>
<span>text</span>
</div>
а затем вставьте новый элемент непосредственно после этого элемента:
var el = document.createElement(element_type); // where element_type is the tag name you want to insert
// ... set element properties as necessary
var div = document.getElementById('div');
var div_link = document.getElementById('div_link');
var next_sib = div_link.nextSibling;
if (next_sib)
{
// if the div_link has another element following it within the link, insert
// before that following element
div.insertBefore(el, next_sib);
}
else
{
// otherwise, the link is the last element in your div,
// so just append to the end of the div
div.appendChild(el);
}
Это позволит вам всегда гарантировать, что ваш новый элемент следует по ссылке.
Если вы хотите использовать что-то вроде jQuery вы можете сделать что-то вроде этого:
$('#div a').after("Your html element");
jQuery имеет хорошую встроенную функцию для этого: after (), at http://api.jquery.com/after/
в вашем случае вам, вероятно, понадобится такой селектор:
$('#div a').after('<p>html element to add</p>');
примеры кода из приведенной выше ссылки также показывают, как загрузить jQuery, если это ново для вас.
предполагая, что вы добавляете только один элемент:
document.getElementById("div").insertBefore({Element}, document.getElementById("div").children[2]);