如何在不使用 document.write 的情况下在 JS 中打印新行?



我想在JS中打印一个新行,但是如果没有document.write,我无法弄清楚如何做到这一点。我需要在没有这个的情况下这样做,因为我使用按钮来调用函数,当我使用 doc.write 时,它会擦除页面并自行显示函数的结果。

<h3>$$$$$</h3>
<span id = "$"></span>
<button onclick="prob2()">Submit</button>
<script type="text/javascript">
function prob2(){
n = parseInt(prompt("Enter number: "));
for(var i=0;i<n;i++){
for(var j=0;j<=i;j++){
document.getElementById("$").innerHTML = "$";
}
console.log("n");
}
};

我想在屏幕上打印一个换行符,以便我的输出如下所示,

而不是控制台.log那里:
$
$$
$$$
...

编辑: 基于Anurag的第一个建议,我构建了一个字符串并将其与innerHTML一起使用以实现我想要的输出。

function prob2(){
var str = "";
var num = parseInt(prompt("Enter number: "));
for(var i=0;i<num;i++){
for(var j=0;j<=i;j++){
str += "$";
}
str += "<br>";
}
document.getElementById("$").innerHTML = str;
};

我接受的第二个建议作为答案也有效!

这里有一种方法可以做到这一点:

function generate() {
document.getElementById("$").innerHTML = ""
var n = parseInt(prompt("Enter number: ")), str = "", currStr = "";
for (var i = 0; i < n; i++) {
str = "", currStr = document.getElementById("$").innerHTML
for (var j = 0; j <= i; j++) {
str+= "$"
document.getElementById("$").innerHTML = currStr + str + "<br/>";
}
}
};
<h3>Incremental $</h3>
<span id="$"></span>
<button onclick="generate()">Generate</button>

我对这个问题有不同的解释。 我认为目的是替换 document.write(( 语句的使用。

<!DOCTYPE html><html lang="en"><head><title> Test Page </title>
<meta charset="UTF-8">
<meta name="viewport" content="width-device-width,initial-scale=1.0, user-scalable=yes"/>
<!-- For: https://stackoverflow.com/questions/62742502/how-can-i-print-a-new-line-in-js-without-using-document-write -->
<style>
p { background-color: lime; }
pre { border: 1px solid red;}
div { border: 3px dotted blue }
</style>
</head><body>
<script>
newLine = (tag,msg) => {
var elem = document.createElement(tag);
elem.appendChild(document.createTextNode(msg));
document.body.appendChild(elem);
// Note: .body. could be a different element or another parameter added to function
}
newLine('p','New line has been created.');
newLine('pre','And then another.');
newLine('div','And then one final new line to display.');
</script>
</body></html>

删除 CSS 样式,因为它只是为了强调而添加的。

相关内容

最新更新