私は次のような要素を持っています:
<div id="test">
<span>You have
<em>30</em>
<span> characters left</span>
</div>
そして私はそれを次のいずれかに置き換えたいと思います:
<div id="test">
<span>You reached the maximum length</span>
</div>
またはと
<div id="test">
<span>Your text is </span>
<em>30</em>
<span> characters to long</span>
</div>
すべての子要素を新しい要素のセットに置き換える方法はありますか?現時点では、最初にすべての要素を削除するために次の関数を使用しています。
function emptyElement(id) {
while(document.getElementById(id).hasChildNodes()) {
document.getElementById(id).removeChild(document.getElementById(id).firstChild)
}
}
その後、コンテンツを再度追加します。
span1 = document.createElement("span");
span1.appendChild(document.createTextNode("You have "));
len = document.createElement("em");
len.appendChild(document.createTextNode(length));
span2 = document.createElement("span");
span2.appendChild(document.createTextNode(" characters left."));
// remove child elements
emptyElement('test');
// Add content
document.getElementById('test').appendChild(span1);
document.getElementById('test').appendChild(len);
document.getElementById('test').appendChild(span2);
(1)子要素を削除し、(2)コンテンツを生成し、(3)新しい要素をdivに追加するためのより簡単な方法があるかもしれないという印象を持っています。