2014-09-30 61 views
0

需要创建一个消息日志,其中消息与时间一起保存。创建一个日志并附加

我有这样的代码,但acresentar一个新的消息被删除旧的并由新的替换。

var textons = prompt("Digite sua mensagem para a ONS", ""); 
    var areaons = prompt("Digite a area onde o problema ocorreu", ""); 



    var date = new Date(); 
    var d = date.getDate(); 
    var day = (d < 10) ? '0' + d : d; 
    var mes = date.getMonth() + 1; 
    var month = (mes < 10) ? '0' + mes : mes; 
    var yy = date.getYear(); 
    var year = (yy > 100) ? yy - 100 : yy; 
    var hours = date.getHours(); 
    var min = date.getMinutes(); 
    var minutes = (min < 10) ? '0' + min : min; 
    var sec = date.getSeconds(); 
    var seconds = (sec < 10) ? '0' + sec : sec;  


    if (areaons != null && textons != null) { 
     document.getElementById("logdescricao").innerHTML = 
     "ONS: " + textons; 
     document.getElementById("logarea").innerHTML = 
     areaons; 

     document.getElementById("loghoracos").innerHTML = 
     day + "/" + month + "/" + year + " " + hours + ":" + minutes + ":" + seconds; 

     document.getElementById("loghoralocal").innerHTML = 
     day + "/" + month + "/" + year + " " + hours + ":" + minutes + ":" + seconds; 
    } 
} 

我想过使用.append(函数),但没有成功。

我该如何让文本停止被重写并通过保存?

感谢

回答

0

如果我理解正确的话,你只是希望它添加到每个部分覆盖代替? 然后,所有你需要做的是“+ =”,而不是“=”

document.getElementById("logdescricao").innerHTML += "ONS: " + textons 

然而,这可能不是这样做的最佳方式。

你可以尝试:

var logdescricaoText = document.createTextNode("ONS: "+textons); 
document.getElementById("logdescricao").appendChild(logdescricaoText); 

不过,说真的,如果你想的事情列出来,那么你应该使用一个表。这将允许更加整洁和结构化的造型。 在你的HTML:

<table> 
    <thead> 
     <tr> 
      <td>Descricao</td> 
      <td>LogMessage</td> 
      <!-- other field headers like 'time' --> 
     </tr> 
    </thead> 
    <tbody id=logs> 
    </tbody> 
</table> 

然后你可以使用JavaScript(你的 '如果' 块中,而不是所有的 “.innerHTML =” 的东西)

var logLine = document.createElement("tr"); 
document.getElementById("logs").appendChild(logLine); 

var descricao = document.createElement("td"); 
descricao.appendChild(document.createTextNode("ONS: "+textons)); 
logLine.appendChild(descricao); 

var logArea = document.createElement("td"); 
logArea.appendChild(document.createTextNode(areaons); 
logLine.appendChild(logArea); 
etc.. 

此外,你可能想例如,将CSS样式应用于HTML的“thead”部分。在你的CSS文件中:

thead { 
    font-weight: bold; 
}