2014-05-05 62 views
0

的一個字母,我有一個像這樣的循環:更改的innerHTML

for(var i = 0; i < woord.length; i++) { 
    if(woord[i] === letter) { 
    goed = true; 
    woordContainer.innerHTML[i] = woord[i]; 
    } 
} 

但在woordContainer的文本在頁面上改變。我嘗試將woord [i]記錄到控制檯並顯示正確的字母。

編輯:

讓我分享的完整代碼,這樣你就可以更好地理解它: (它是一個劊子手遊戲)

var store, 
    woord, 
    wrapper, 
    woordContainer, 
    letterInput, 
    gokButton, 
    pogingen, 
    pogingenText; 

window.onload = function() { 
    store = new Persist.Store("galgje"); 
    woord = store.get("woord"); 

    pogingen = 10; 

    wrapper = document.getElementById("wrapper"); 
    woordContainer = document.getElementById("woordContainer"); 
    letterInput = document.getElementById("letterInput"); 
    gokButton = document.getElementById("gokButton"); 
    pogingenText = document.getElementById("pogingenText"); 

    if (!woord) { 
    document.location.href = "./index.html"; 
    } 

    for (var i = 0; i < woord.length; i++) { 
    woordContainer.innerHTML += "."; 
    } 

    wrapper.appendChild(woordContainer); 

    gokButton.onclick = function() { 

    var letter = letterInput.value.toLowerCase(); 
    var goed = false; 

    if(letter) { 
     for(var i = 0; i < woord.length; i++) { 
     if(woord[i] === letter) { 
      goed = true; 
      woordContainer.innerHTML = woord[i]; 
     } 
     } 

     if(!goed) { 
     pogingen--; 

     if(pogingen === 0) { 
      document.location.href = "./af.html"; 
     } 

     pogingenText.innerHTML = "Pogingen: " + pogingen; 
     } 

     letterInput.value = ""; 
    } 

    return false;  
    } 
} 
+5

'woordContainer.innerHTML = woord;單曲我想你應該解決你的問題。 – KBN

+0

每次更改'woordContainer.innerHTML'時,都會重繪頁面。你可能想要優化它。 –

+1

您需要發表更多代碼 – Ejaz

回答

1

如果要替換的字符在指數詮釋woordContainer.innerHTMLi,與一個在woord[i],你可以做這樣的:

if(woord[i] === letter) { 
    goed = true; 
    var temp = woordContainer.innerHTML 
    woordContainer.innerHTML = temp.substr(0, i) + woord[i] + temp.substr(i + woord[i].length); 
} 
+0

謝謝!有用! – DennisvB

+0

不客氣:-)謝謝你接受我的回答! – Cerbrus