web-dev-qa-db-ja.com

javascript innerHTMLの代わりに追加

簡単な質問、私たちは変更の内容を変更できると知っています

<div id="whatEverId">hello one<div>を使用して:

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

今、私ができる方法はありますか[〜#〜] add [〜#〜]ものを置き換える代わりにdivに追加しますか?だから私は得ることができます

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

(もちろん同様のものを使用)

26
Gmo
<div id="whatever">hello one</div>
<script>
document.getElementById("whatever").innerHTML += " hello two";
</script>
54
jcomeau_ictx
document.getElementById("whatEverId").innerHTML =  document.getElementById("whatEverId").innerHTML +  "hello two" + document.getElementById("whatEverId").innerHTM ;
3
Piotr Kula

Jcomeau_ictxが示唆したのは、innerHTMLを編集する非効率的な方法です。ベンチェリーのPPT http://www.bcherry.net/talks/js-better-faster

正しい方法は、要素をデタッチして変更し、親ノードに追加し直すことです。 https://Gist.github.com/cowboy/938767 このGistのネイティブJavaScriptを使用して要素を切り離します。

2
mareenator

element.innerHTML += 'content'は、input全体がブラウザによって再解釈されるため、textareasとinnerHTMLsをデフォルトの空白状態、クリック解除チェックボックスなどに空にします。

状態を維持する必要がある場合は、新しい要素を作成する必要があります(<span>例えば)、次のように現在の要素に追加します。

let newElement = 'span'
newElement.innerHTML = 'new text'
document.getElementById('oldElement').appendChild(newElement)
1
Nighto

追加する場合は、=を+ =に変更するだけです。

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

プレフィックスを付ける場合

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

この種のことを行うには、jQueryまたはMooToolsのJavaScriptライブラリ/フレームワークを使用することを強くお勧めします。テキストノードだけでなくタグを追加する場合は、DOM createElementまたは前述のライブラリ/フレームワークのいずれかを使用する必要があります。

1
gingerCodeNinja

このようにdiv文字列を追加することでそれを行うことができます。

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

1
Rukmi Patel