通过createTextNode()创建的缩进代码字符串?

阿斯匹林

因此,我有一个字符串数组(通常包含HTML代码),例如:

var array = ["<table>", "<thead>", "<tr>", "<th>First Name</th>"....];

我正在使用以下方法从该数组中创建一个串联字符串:

var htmlString = array.join("");

现在要在网页上打印/显示/显示此HTML,我将其转换为文本并将其附加到目标div:

var text = document.createTextNode(htmlString);
document.getElementById("nl-text").appendChild(text);

这给我的输出为:

<table><thead><tr><th>First Name</th><th>Last Name</th><th>Total Spent</th><th>Efficiency</th></tr></thead><tbody><tr><td>ABC</td><td>DEF</td><td>2547</td><td>56%</td></tr><tr><td>GHI</td><td>JKL</td><td>1256</td><td>25%</td></tr><tr><td>MNO</td><td>PQR</td><td>29847</td><td>47%</td></tr><tr><td>STU</td><td>VWQ</td><td>3255</td><td>50%</td></tr><tr><td>YZA</td><td>BCD</td><td>8744</td><td>88%</td></tr><tr><td>EFG</td><td>HIJ</td><td>9521</td><td>69%</td></tr><tr><td>KLM</td><td>NOP</td><td>1025</td><td>10%</td></tr><tr><td>QRS</td><td>TUV</td><td>6695</td><td>28%</td></tr><tr><td>WXY</td><td>ZAB</td><td>6301</td><td>36%</td></tr></tbody></table>

有什么办法可以让我的代码自动缩进,使其看起来像这样:

<table>
   <thead>
       <tr>
          <th>First Name</th>
          .
          .
          .
       </tr>
    </thead>
    <tbody>
    .
    .
    .
    </tbody>
</table>

完整的代码要点

var array = ["<table>", "<thead>", "<tr>", "<th>", "First Name", "</th>", "<th>", "Last Name", "</th>", "<th>", "Total Spent", "</th>", "<th>", "Efficiency", "</th>", "</tr>", "</thead>", "<tbody>", "<tr>", "<td>", "ABC", "</td>", "<td>", "DEF", "</td>", "<td>", "2547", "</td>", "<td>", "56%", "</td>", "</tr>", "<tr>", "<td>", "GHI", "</td>", "<td>", "JKL", "</td>", "<td>", "1256", "</td>", "<td>", "25%", "</td>", "</tr>", "<tr>", "<td>", "MNO", "</td>", "<td>", "PQR", "</td>", "<td>", "29847", "</td>", "<td>", "47%", "</td>", "</tr>", "<tr>", "<td>", "STU", "</td>", "<td>", "VWQ", "</td>", "<td>", "3255", "</td>", "<td>", "50%", "</td>", "</tr>", "<tr>", "<td>", "YZA", "</td>", "<td>", "BCD", "</td>", "<td>", "8744", "</td>", "<td>", "88%", "</td>", "</tr>", "<tr>", "<td>", "EFG", "</td>", "<td>", "HIJ", "</td>", "<td>", "9521", "</td>", "<td>", "69%", "</td>", "</tr>", "<tr>", "<td>", "KLM", "</td>", "<td>", "NOP", "</td>", "<td>", "1025", "</td>", "<td>", "10%", "</td>", "</tr>", "<tr>", "<td>", "QRS", "</td>", "<td>", "TUV", "</td>", "<td>", "6695", "</td>", "<td>", "28%", "</td>", "</tr>", "<tr>", "<td>", "WXY", "</td>", "<td>", "ZAB", "</td>", "<td>", "6301", "</td>", "<td>", "36%", "</td>", "</tr>", "</tbody>", "</table>"];
var htmlString = array.join("");
var text = document.createTextNode(htmlString);
document.getElementById("nl-text").appendChild(text);

<!-- HTML -->
<pre id="nl-text"></pre>

更新

  • 放入jsfiddle进行快速演示。
  • 我宁愿不使用第三方库,也不愿在不依赖其他任何东西的情况下这样做。
宰兴

如果您的阵列数据足够干净,则应该这样做:

var htmlString = "";
var indent = 0, sw = 2;
for (i = 0; i < array.length; i++) {
    c_indent = array[i][0]=="<" ? (array[i][1]=="/" ? --indent : indent++) : indent;
    htmlString += " ".repeat(c_indent * sw) + array[i] + "\n";
}
var text = document.createTextNode(htmlString);
document.getElementById("nl-text").appendChild(text);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

改善代码字符串处理

来自分类Dev

HTML字符串缩进代码

来自分类Dev

Python从列表创建缩进字符串

来自分类Dev

如何正确分割代码字符串

来自分类Dev

用PHP提取HTML代码字符串

来自分类Dev

Javascript从短代码字符串中提取属性

来自分类Dev

如何简化PyJulia的可执行代码字符串

来自分类Dev

用PHP提取HTML代码字符串

来自分类Dev

如何正确分割代码字符串

来自分类Dev

源代码字符串不能包含空字节

来自分类Dev

通过字符串创建读取流

来自分类Dev

编码和解码字符串

来自分类Dev

URL编码字符串

来自分类Dev

解码字符串-引号问题

来自分类Dev

在Swift中解码字符串

来自分类Dev

编码字符串数组

来自分类Dev

如何解码字符串?

来自分类Dev

美丽的汤解码字符串

来自分类Dev

PHP中的编码字符串

来自分类Dev

从strftime编码字符串

来自分类Dev

URL编码字符串

来自分类Dev

编码和解码字符串

来自分类Dev

解码字符串:Python

来自分类Dev

使用 Python 编码字符串

来自分类Dev

如何通过套接字在Python 3.0上编码字符串并在Python 2.7上正确解码字符串

来自分类Dev

解释用于令牌化程序的C代码字符串

来自分类Dev

在beanshell中评估代码字符串,并获取由beanshell解释器返回的值

来自分类Dev

如何在SOAP UI编辑器中注释代码字符串?

来自分类Dev

PyInstaller“ ValueError:源代码字符串不能包含空字节”