2016-03-23 17 views
0

「businesscard」が「Business Card Info」で更新されたIDを持つdivを見ることができますが、ID「name」を持つdivは更新されません。innerHTMLメソッドで他のdiv要素内のdivを更新できませんか?

+3

あなたは、内側のdivが – Wainage

+0

なくなっていることを、=「名刺情報」businessCard.innerHTMLを設定したら、どのような方法...または唯一の方法はのdivのを分離することであるありますか? – tharun139

+0

内側のdivを外側のdivに追加することができます:http://stackoverflow.com/questions/14004117/create-div-and-append-div-dynamically –

答えて

0

innerHTMLは、内側のdivをクリアします。外側のdivにinnerHTMLを使用する前に内側のdivを保存します。

window.onload = init; 
 

 
    function init() { 
 
    var button = document.getElementById("populateFields"); 
 
    button.onclick = updateFields; 
 
    } 
 

 
    function updateFields() { 
 
    //save inner div 
 
    var innerdiv = document.getElementById("name"); 
 
    innerdiv.innerHTML = "Name"; 
 

 
    var outerdiv = document.getElementById("businessCard"); 
 
    outerdiv.innerHTML = "Business Card Info"; 
 
    // add inner div back 
 
    outerdiv.appendChild(innerdiv); 
 

 
    }
<div id="businessCard">sme 
 
    <div id="name">fdfdf</div> 
 
</div> 
 
<input type="button" value="populate fields" id="populateFields">

0

一部はinnerHTMLが原因DOMでそれの結果の悪であると言うので。別の解決方法は、.firstChild.nodeValueを使用することです。

window.onload = init; 
 

 
function init() { 
 
    var button = document.getElementById("populateFields"); 
 
    button.onclick = updateFields; 
 
} 
 

 
function updateFields() { 
 
    document.getElementById("businessCard").firstChild.nodeValue = "Business Card Info"; 
 
    document.getElementById("name").firstChild.nodeValue = "Name"; 
 
}
<div id="businessCard"> 
 
    <div id="name"> </div> 
 
</div> 
 
<input type="button" value="populate fields" id="populateFields">

関連する問題