Javascript在列中打印文本
主要的问题是,我希望我的新文本出现在div的下一行,但不在同一位置或替换以前的文本 目前,我有一个代码,可以打印出玩家和计算机的临时计分结果Javascript在列中打印文本,javascript,Javascript,主要的问题是,我希望我的新文本出现在div的下一行,但不在同一位置或替换以前的文本 目前,我有一个代码,可以打印出玩家和计算机的临时计分结果 < style > All needed code < /style > <script> function example() { if(player == 1) { document.getElementById("logtxt").innerHTML = "Player rolled "+
< style >
All needed code
< /style >
<script>
function example() {
if(player == 1) {
document.getElementById("logtxt").innerHTML = "Player rolled "+tempscore+" points"
} else if(player == 2) {
document.getElementById("logtxt").innerHTML = "Computer rolled "+tempscore+" points" }
</script>
<html>
<div class="log">
<h1>Game log<h1>
<p id="logtxt"> </p>
</div>
</html
显然还有更多的代码,但这是需要的部分。您需要附加日志字符串,而不仅仅是设置内容,您可以使用+=来实现这一点:
function example() {
if(player == 1) {
document.getElementById("logtxt").innerHTML += "Player rolled "+tempscore+" points<br />";
} else if(player == 2) {
document.getElementById("logtxt").innerHTML += "Computer rolled "+tempscore+" points<br />";
}
}
最好将其转换为可重用的功能:
function log(text) {
//log the text and start a new line
document.getElementById("logtxt").innerHTML += text + '<br />';
}
function example() {
if(player == 1) {
log("Player rolled "+tempscore+" points");
} else if(player == 2) {
log("Computer rolled "+tempscore+" points");
}
}
另一个使用insertAdjacentHTML的地方
document.getElementById("logtxt").insertAdjacentHTML('beforeend', "<br/>Player rolled "+tempscore+" points");
举例说明:
在logtxt元素结束之前,在所有当前内容之后,您可以插入br标记以在每个条目上换行。您应该使用.appendChild,这样您就不必使用+=,获取和设置.innerHTML,这也是一个选项
var doc = docmument;
function E(e){
return doc.getElementById(e;)
}
function T(t){
return doc.createTextNode(t);
}
function C(e){
return doc.createElement(e);
}
function example(){
var logtxt = E('logtxt');
if(player === 1) {
logtxt.appendChild(T('Player rolled '+tempscore+' points'));
logtxt.appendChild(C('br'));
else if(player === 2){
logtxt.appendChild(T('Computer rolled '+tempscore+' points'));
logtxt.appendChild(C('br'));
}
}