我的数组包含一个空格[“”]。当我用下划线加入空格时,结果字符串中的空格元素在html中不可见

Rya*_*uez 7 html javascript arrays join innerhtml

当显示在控制台中时,我在p标记之间得到的结果包含索引3中的空间,这是正确的。

但是当显示在页面上时,我得到“ _ _ _ _”。索引3中的空间不可见。这是CodePen

如何获得下划线之间要在页面上显示的空间?我什至无法在此处显示空间!它显示为“ _ _ _ _”。下划线2和3之间应该有空格!

非常感谢你!

.toString而不是.join没什么区别。

.textContent而不是.innerHTML也不起作用。

<html>
  <p id="myid"></p>

  <script>
    var myArray = ["_", "_", " ", "_", "_"];
    var hiddenWord = document.getElementById('myid');
    var temp;

    function newGame() {
      temp = myArray.join(" ");
      hiddenWord.innerHTML = temp;
    }

    newGame();
    console.log("temp variable", temp);
    console.log(myArray);
  </script>
</html>
Run Code Online (Sandbox Code Playgroud)

Ori*_*ori 8

呈现HTML时,通常将空白序列折叠为单个空白。white-space: pre;在元素上使用可以保留空白序列:

var myArray = ["_", "_", " ", "_", "_"];
var hiddenWord = document.getElementById('myid');
var temp;

function newGame() {
  temp = myArray.join(" ");
  hiddenWord.innerHTML = temp;
}

newGame();
Run Code Online (Sandbox Code Playgroud)
#myid {
  white-space: pre;
}
Run Code Online (Sandbox Code Playgroud)
<p id="myid"></p>
Run Code Online (Sandbox Code Playgroud)

  • 当您可以通过CSS属性本身解决问题时,最好使用CSS来解决,这就是它的设计目的,[更好或更糟:使用JavaScript与CSS进行样式设置](/sf/ask/1343189361/ /更好或更糟糕的样式与javascript-vs-css) (3认同)
  • 好答案。不知道存在`white-space:pre;`。这将比“&nbsp;”更好或更有用吗? (2认同)
  • @CodeManiac我确实同意那个职位,但是我相信有一些例外。在这种情况下,这并不是真正的“样式问题”,而是在存在多个空白时的渲染问题。我会更倾向于说`&nbsp;`解决方案将“更”适应。我个人的看法当然。 (2认同)

Nin*_*olz 3

许多空格在 HTML 中呈现为单个空格,就像所有其他空白一样。为了解决这个问题,您可以使用不间断空格&nbsp;,它提供了所需的空间。

function newGame() {
    temp = myArray.join(" ").replace(/\s/g, '&nbsp;');
    hiddenWord.innerHTML = temp;
 }

var myArray = ["_", "_"," ","_","_"],
    hiddenWord = document.getElementById('myid'),
    temp;

newGame();
console.log("temp variable", temp);
console.log(myArray);
Run Code Online (Sandbox Code Playgroud)
<p id="myid"></p>
Run Code Online (Sandbox Code Playgroud)