Добавление 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]);