我有一个像这样的代码:
document.getElementById("outputLaps").innerHTML = "Number of lap: " + numberOfLap + " time: " + minutes + ":" + seconds + ":0" + milliseconds
JS:
{{1}}
并且我不想重写它,而是在之前的" lap"下显示它。 谢谢你的回答:)。
答案 0 :(得分:6)
如果要插入HTML,请使用insertAdjacentHTML
。
var str = "Number of lap: " + numberOfLap + " time: " + minutes + ":" + seconds + ":0" + milliseconds;
document.getElementById("outputLaps").insertAdjacentHTML("beforeend", str);
但是,如果您只想插入文本,则可以附加文本节点:
var str = "Number of lap: " + numberOfLap + " time: " + minutes + ":" + seconds + ":0" + milliseconds;
document.getElementById("outputLaps").appendChild(
document.createTextNode(str)
);
如果您希望文本转到下一行,您可以
\n
,并设置pre
设置为pre-wrap
,pre-line
或<br />
的段落样式。['green', 'red', 'yellow', 'blue']
HTML元素。答案 1 :(得分:2)
更好的解决方案是使用<ol>
或<ul id="outputLaps">
代替,并向其添加<li>s
。
var li = document.createElement( 'li' )
li.textContent = "Number of lap: " + numberOfLap + " time: " + minutes + ":" + seconds + ":0" + milliseconds
document.getElementById( 'outputLaps' ).appendChild( li )
在这种情况下,因为.appendChild()
返回正在添加的元素,我们可以避免变量。
document.getElementById( 'outputLaps' )
.appendChild( document.createElement( 'li' ) )
.textContent = "Number of lap: " + numberOfLap + " time: " + minutes + ":" + seconds + ":0" + milliseconds
也许你不想要丑陋的子弹,所以你可以改变它们,或者只是用CSS规则删除它们:
<style>
ul { list-style-type: none; }
</style>
答案 2 :(得分:1)
您可以使用+=
连接到现有值。
document.getElementById("outputLaps").innerHTML += "<br>Number of lap: " + numberOfLap + " time: " + minutes + ":" + seconds + ":0" + milliseconds
您还可以使用insertAdjacentHTML()
方法,该方法不会修改段落中现有的DOM节点。
document.getElementById("outputLaps").insertAdjacentHTML('beforeend', "<br>Number of lap: " + numberOfLap + " time: " + minutes + ":" + seconds + ":0" + milliseconds);