更改innerHTML的一个字母

时间:2014-05-05 14:16:05

标签: javascript innerhtml

我有一个像这样的for循环:

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;    
  }
}

1 个答案:

答案 0 :(得分:1)

如果要将索引woordContainer.innerHTML处的字符i替换为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);
}