2013-04-17 2 views
8

Это должно быть просто, но это не так.Добавить в DOM без jQuery

document.getElementsByTagName('body')[0].document.createTextNode(document.createElement('<div>some HTML</div>')); 

Он создается как текстовый узел. Как это сделать, чтобы я просто добавлял HTML без jQuery?

+1

возможно дубликат [Вставка HTML-элементы с JavaScript] (http://stackoverflow.com/questions/814564/inserting-html-elements-with-javascript) –

ответ

15

Закрыть, но нет сигары. Вы должны создать элемент вручную (через createElement), и затем добавить его, как это:

var div = document.createElement("div"); 
div.innerHTML = "some HTML"; 
document.getElementsByTagName('body')[0].appendChild(div); 

К сожалению, вы не можете сделать это в одной гильзе, потому что нет никакой функции, чтобы установить innerHTML свойство элемента, что означает, что он не связан с цепью. С небольшим количеством подготовки вы можете сделать это возможным, хотя:

function setInnerHTML(element, content) { 
    element.innerHTML = content; 
    return element; 
} 

document.getElementsByTagName('body')[0].appendChild(setInnerHTML(document.createElement("div"), "some HTML")); 
+0

Отлично. Благодарю. Любая идея как удалить точно созданный элемент позже (отдельная часть скрипта)? – user2143356

+0

Несомненно. Поскольку мы уже сохранили ссылку на элемент 'div', мы можем просто сделать это:' div.parentNode.removeChild (div); ' –

+0

Perfect. Спасибо – user2143356

1

Там вы много методов:

elem.innerHTML = '' // fast 
elem.appendChild()  
elem.insertAdjacentElement() //fast  
elem.insertAdjacentHTML() 
elem.insertAdjacentText() 
Смежные вопросы