【发布时间】:2017-09-08 02:13:59
【问题描述】:
'use strict';
function injectCharacters(){
var paragraph = document.getElementById( 'paragraph' ),
text = paragraph.innerHTML,
ary = text.split( '' ),
i = 1;
paragraph.innerHTML = '';
for ( i; i <= 52 ; i++ ){
window.setTimeout(
(
function( i ){
return function(){
paragraph.innerHTML += ary[ i ];
}
}
)
( i ), i * 100
)
}
}
injectCharacters();
* {
margin: 0;
}
html,
body {
overflow: hidden;
height: 100%;
}
body {
display: flex;
font-family: Arial;
}
p {
margin: auto;
}
.mtx-3d {
transform:
perspective( 10rem )
matrix3D(
1, 0.25, 0.5, 0.0075,
0.25, 2, 2, 0.02,
1, 2, 3, 4,
1, 2, 3, 0.75
)
}
<p id="paragraph" class="mtx-3d">
So. Yeah I mean. <br>I've been thinking <br>A lot
</p>
在上面的 sn-p 中,换行符是输出中的文字。我想要显示一个实际的换行符而不是看到<br>。我该如何解决这个简单的问题?
我怀疑这与我将每个字符分解为一个存放在数组中的值然后将其输出回段落元素有关,但我可能错了。
【问题讨论】:
-
我实际上没有看到您的代码将
<br>标签注入到内部 HTML 中。这应该发生在哪里? -
@TimBiegeleisen,
来自元素的 html -
@TimBiegeleisen 原始段落元素中包含
<br>标签。我将它的innerHTML内容拆分为一个数组,然后将其再次注入到元素中,一次一个数组值。超时后。 -
这个问题可能是重复的,但是您是否使用调试器单步执行您的代码并检查可能作为换行符出现的字符?检查段落的第一行直到行尾。您认为
<br>在原始 HTML 中的位置是什么? -
您认为一次连接 html 1 个字符是导致问题的原因是正确的。输入时它将看到
<,然后将其视为该字符,而不是表示元素标记开始的标记。
标签: javascript html css innerhtml line-breaks