добавление javascript innerHTML вместо замены - PullRequest
26 голосов
/ 06 июля 2011

быстрый вопрос, я знаю, что мы можем изменить содержание

<div id="whatEverId">hello one<div> используя:

document.getElementById("whatEverId").innerHTML="hello two";

Теперь, есть ли способ ДОБАВИТЬ вещи в div вместо его замены ??? так что я могу получить

<div id="whatEverId">hello one hello two<div>

(конечно, используя нечто подобное)

Ответы [ 6 ]

53 голосов
/ 06 июля 2011
<div id="whatever">hello one</div>
<script>
document.getElementById("whatever").innerHTML += " hello two";
</script>
3 голосов
/ 06 июля 2011
document.getElementById("whatEverId").innerHTML =  document.getElementById("whatEverId").innerHTML +  "hello two" + document.getElementById("whatEverId").innerHTM ;
2 голосов
/ 24 февраля 2014

Что предложил jcomeau_ictx - это неэффективный способ редактирования innerHTML. Проверьте PPT вишни Бена http://www.bcherry.net/talks/js-better-faster

Правильным способом будет отсоединение элемента и внесение в него изменений, а затем добавление его обратно в родительский узел. Используйте https://gist.github.com/cowboy/938767 родной JavaScript из этого списка для отсоединить элемент.

1 голос
/ 16 апреля 2019

Обратите внимание, что использование element.innerHTML += 'content' приведет к пустым значениям input s и textarea s по умолчанию, пустым состояниям, флажкам снятия отметки и т. Д., Поскольку весь innerHTML будет интерпретирован браузером повторно.

Если вам нужно сохранить состояние, вам нужно создать новый элемент (например, <span>) и добавить его к текущему элементу, например:

let newElement = 'span'
newElement.innerHTML = 'new text'
document.getElementById('oldElement').appendChild(newElement)
1 голос
/ 06 июля 2011

Вы можете сделать это, добавив строку div следующим образом ..

document.getElementById ('div_id'). InnerHTML + = 'Hello Two';

1 голос
/ 06 июля 2011

Если вы добавляете, вы можете просто изменить = на + =

document.getElementById ("whatEverId"). InnerHTML + = 'hello two';

Если префикс

document.getElementById ("whatEverId"). InnerHTML = 'hello two' + document.getElementById ("whatEverId"). InnerHTML;

Хотя я бы настоятельно рекомендовал использовать jQuery или библиотеки / рамки JavaScript MooTools для подобных вещей. Если вы добавляете теги, а не просто текстовые узлы, вам следует использовать DOM createElement или одну из вышеупомянутых библиотек / фреймворков.

...