在Javascript document.write中添加空格

时间:2016-02-03 20:28:48

标签: javascript html whitespace document.write

所以我现在正在使用一些JavaScript和一组对象创建一个动态表。我需要在两者之间添加一些空白区域,但是一个空间是不够的,我需要将它几乎标记出来。最好的方法是什么?到目前为止,这是我的代码:

var sections = {

   p1 : {sname: "Dynamic Table", mscore: 20},
   p2 : {sname: "IntelliJ Usage", mscore: 10},
   p3 : {sname: "Calender Control", mscore: 30},
   p4 : {sname: "Active Form", mscore: 20},
   p5 : {sname: "Object Database", mscore: 20}
};

document.write(Object.keys(sections).reduce(function(s, p, i) {
   var o = sections[p];
   return s + (i>0?'<br><br><br><br>':'') + o.sname + '  ' + o.mscore + ' ' }, '')
);

5 个答案:

答案 0 :(得分:6)

如果要向DOM添加空格,请尝试使用不间断空格

'&nbsp;'

而不是

' '

这些不间断的空格可以链接。

&nbsp;&nbsp;

会强制在页面上显示两个空格。

答案 1 :(得分:4)

你可以return s + "<div class='whatever'>" + o.sname + ' ' + o.mscore + "</div>"并使用CSS来设置空格。

var sections = {

   p1 : {sname: "Dynamic Table", mscore: 20},
   p2 : {sname: "IntelliJ Usage", mscore: 10},
   p3 : {sname: "Calender Control", mscore: 30},
   p4 : {sname: "Active Form", mscore: 20},
   p5 : {sname: "Object Database", mscore: 20}
};

document.write(Object.keys(sections).reduce(function(s, p, i) {
   var o = sections[p];
   return s + "<div class='whatever'>" + o.sname + '  ' + o.mscore + "</div>" }, '')
);
div.whatever { padding-bottom: 5em; }

更新使用表格:

var sections = {

   p1 : {sname: "Dynamic Table", mscore: 20},
   p2 : {sname: "IntelliJ Usage", mscore: 10},
   p3 : {sname: "Calender Control", mscore: 30},
   p4 : {sname: "Active Form", mscore: 20},
   p5 : {sname: "Object Database", mscore: 20}
};

document.write("<table>" + Object.keys(sections).reduce(function(s, p, i) {
   var o = sections[p];
   return s + "<tr><td>" + o.sname + '</td><td>' + o.mscore + "</td></tr>" }, '')
+ "</table>");
td { padding-bottom: 2em }

答案 2 :(得分:3)

控制间距的最佳方法是通过CSS。将每个人包裹在一个班级中并根据口味对其进行设计。

另一种方法是使用几个不间断的空格&nbsp;

因此:return s + (i>0?'<br><br><br><br>':'') + o.sname + '&nbsp;&nbsp;&nbsp;' + o.mscore + ' ' }, '')

答案 3 :(得分:2)

最快的解决方案是将所有部分包装在<pre></pre>标记中。

你的代码中的

var sections = {

   p1 : {sname: "Dynamic Table", mscore: 20},
   p2 : {sname: "IntelliJ Usage", mscore: 10},
   p3 : {sname: "Calender Control", mscore: 30},
   p4 : {sname: "Active Form", mscore: 20},
   p5 : {sname: "Object Database", mscore: 20}
};

document.write("<pre>"); //<--here
document.write(Object.keys(sections).reduce(function(s, p, i) {
   var o = sections[p];
   return s + (i>0?'<br><br><br><br>':'') + o.sname + '  ' + o.mscore + ' ' }, '')
);
document.write("</pre>"); //<--...and here

更好的解决方案是使用CSS

.wrapper-class {
    white-space: nowrap;
}

答案 4 :(得分:1)

使用四个或五个不间断空格来添加标签。代码看起来像&nbsp;&nbsp;&nbsp;

如果您需要在显示的内容中使用标签,请考虑CSS提供的格式选项。