2013-07-25 2 views
1

Возможно, есть лучший способ рассказать о моем вопросе, сказав «Динамически создавать элементы DOM через Javascript», но я решил написать простой заголовок, если последний был неправильным. Во всяком случае, есть способ, которым я могу «создавать» элементы HTML через Javascript? Например, я могу нажать кнопку на моем сайте, и появится параграф?Как создать HTML-элементы с помощью Javascript?

+2

Вы уверены, что не видите окно поиска на странице справа вверху? – melancia

+1

https://developer.mozilla.org/en-US/docs/Web/API/document.createElement && https://developer.mozilla.org/en-US/docs/Web/API/Node.appendChild – Ian

ответ

5

Вы можете использовать createElement() так:

var el = docment.createElement("elementtype"); 

Это создаст какой-либо элемент, если заменить elementtype с типом элемента ("DIV", "р" и т.д.)

После что вы можете использовать собственные методы .appendChild() или .insertBefore() на каком бы элементе вы хотите прикрепить этот новый созданный элемент.

var attachTo = document.getElementById('appendToMe'); 
attachTo.appendChild(el); 

И он будет на странице после последнего элемента внутри этого элемента.

Ссылки:

+1

Thank вы!!! Я буду принимать вопрос как правильный в 11 минут. – Carpetfizz

+0

var el = document.createElement ("elementtype"); –

+1

Нет такой вещи, как 'prependChild()' – Ian

1
var element = document.createElement('p'); 
element.innerHTML = "Hey, this is a new paragraph!"; 
parentElement.appendChild(element); 

Для получения дополнительной информации обратитесь к document.createElement и Node.appendChild

+0

Просто примечание: 'innerHTML' широко поддерживается, но это еще не стандарт w3c, поскольку он является частью HTML5 DOM, рабочего проекта (однако, это что-то живое Стандарт). С текущими стандартами w3c это должно быть 'element.appendChild (document.createTextNode (« Привет, это новый абзац! »));' – Oriol

+0

@Oriol Это одна из самых тривиальных вещей, которые я когда-либо слышал. 'innerHTML' настолько широко поддерживается, что стандарты не должны быть фактором для чего-то подобного. Я согласен **, что 'document.createTextNode' следует использовать для чего-то вроде этого примера и в большинстве сценариев (хотя вы можете легко использовать' textContent'/'innerText'), но ссылка на W3C здесь действительно не применима – Ian

+0

@ Я просто подумал, что если ассер не знает, как создать элемент, он не будет знать, что 'innerHTML' еще не является стандартным. И я думаю, что, даже если это широко поддерживается, каждый, кто использует нестандартные вещи, должен знать об этом. – Oriol