Javascript 是否可以在JS中构造HTML,并使用document.write插入到HTML中?

Javascript 是否可以在JS中构造HTML,并使用document.write插入到HTML中?,javascript,html,twitter-bootstrap,Javascript,Html,Twitter Bootstrap,我正在构建一个通过JSON/JSON插入HTML的web应用程序。我喜欢通过使用空白来打破这种局面,以便在JS中更轻松地浏览代码 我有这个: HTML JS $(passOptions.options)。每个(函数(){ var输出=“年度功率传递”+ “+this.premiere+”“+this.premiere” + ""; $(“#定价”)。追加(输出); }); 在JS之前是这样的: $(passOptions.options).each(function() { var

我正在构建一个通过JSON/JSON插入HTML的web应用程序。我喜欢通过使用空白来打破这种局面,以便在JS中更轻松地浏览代码

我有这个:

HTML


JS

$(passOptions.options)。每个(函数(){
var输出=“年度功率传递
”+ “+this.premiere+”
“+this.premiere” + ""; $(“#定价”)。追加(输出); });
在JS之前是这样的:

$(passOptions.options).each(function() {
    var output = "
              <table id='placeholder2' class='table table-bordered'>
                  <tbody>
                      <tr>
                         <td>
                            <span class='primary-line'>Annual Power Pass</span><br /><span class='secondary-line'><a href='#'>Blockout Dates Apply</a></span>
                         </td>" + 
                                "<td id='powerAP'>" + this.premiere + "<br />" + this.preferred 
                              + "</td>
                      </tr>
                   </tbody>
                </table>";
    $('#pricing').append(output);
});
$(passOptions.options)。每个(函数(){
变量输出=”
年度电力通行证
" + “+this.premiere+”
“+this.premiere” + " "; $(“#定价”)。追加(输出); });
但是带有结构化HTML的JS版本不起作用,我还收到了一个“uncaughtsyntaxerror:unexpectedtoken-liked”错误

因此,我回到了“缩小”版本,因为它工作正常

在JS中查看/浏览HTML更容易的地方,还有其他方法可以做到这一点吗

顺便说一句,这将生活在Sharepoint中,用户将能够更新应用程序的某些部分

如果您没有注意到,我正在使用Bootstrap3构建它


提前感谢。

如果继续将未扫描的数据连接到标记中,则可能会创建无效的HTML,并使自己面临一些XSS攻击,同时使代码无法维护

您需要的是一个JavaScript模板引擎。有很多可供选择。我更喜欢。很多人都喜欢

Swig文档中的示例:

{% block tacos %}
  //...
{% endblock tacos %}
{% block burritos %}
  {% if foo %}
    // ...
  {% endif the above will render if foo == true %}
{% endblock burritos %}

另请参见:

如果继续将未扫描的数据连接到标记中,则可能会创建无效的HTML并使自己面临某些XSS攻击,同时使代码无法维护

您需要的是一个JavaScript模板引擎。有很多可供选择。我更喜欢。很多人都喜欢

Swig文档中的示例:

{% block tacos %}
  //...
{% endblock tacos %}
{% block burritos %}
  {% if foo %}
    // ...
  {% endif the above will render if foo == true %}
{% endblock burritos %}

另请参见:

如果继续将未扫描的数据连接到标记中,则可能会创建无效的HTML并使自己面临某些XSS攻击,同时使代码无法维护

您需要的是一个JavaScript模板引擎。有很多可供选择。我更喜欢。很多人都喜欢

Swig文档中的示例:

{% block tacos %}
  //...
{% endblock tacos %}
{% block burritos %}
  {% if foo %}
    // ...
  {% endif the above will render if foo == true %}
{% endblock burritos %}

另请参见:

如果继续将未扫描的数据连接到标记中,则可能会创建无效的HTML并使自己面临某些XSS攻击,同时使代码无法维护

您需要的是一个JavaScript模板引擎。有很多可供选择。我更喜欢。很多人都喜欢

Swig文档中的示例:

{% block tacos %}
  //...
{% endblock tacos %}
{% block burritos %}
  {% if foo %}
    // ...
  {% endif the above will render if foo == true %}
{% endblock burritos %}

另请参见:

我用过类似的东西。。。对我来说更容易阅读

var output = [
  "<table>",
    "<tr>",
      "<td>",
      "Content Here"
      "</td>",
    "</tr>",
  "</table>"
  ].join("\n");
var输出=[
"",
"",
"",
“此处的内容”
"",
"",
""
].加入(“\n”);

output
现在是一个从表中构建的字符串,当添加到代码中时,使用
\n
对换行符进行连接。

我使用了类似这样的东西。。。对我来说更容易阅读

var output = [
  "<table>",
    "<tr>",
      "<td>",
      "Content Here"
      "</td>",
    "</tr>",
  "</table>"
  ].join("\n");
var输出=[
"",
"",
"",
“此处的内容”
"",
"",
""
].加入(“\n”);

output
现在是一个从表中构建的字符串,当添加到代码中时,使用
\n
对换行符进行连接。

我使用了类似这样的东西。。。对我来说更容易阅读

var output = [
  "<table>",
    "<tr>",
      "<td>",
      "Content Here"
      "</td>",
    "</tr>",
  "</table>"
  ].join("\n");
var输出=[
"",
"",
"",
“此处的内容”
"",
"",
""
].加入(“\n”);

output
现在是一个从表中构建的字符串,当添加到代码中时,使用
\n
对换行符进行连接。

我使用了类似这样的东西。。。对我来说更容易阅读

var output = [
  "<table>",
    "<tr>",
      "<td>",
      "Content Here"
      "</td>",
    "</tr>",
  "</table>"
  ].join("\n");
var输出=[
"",
"",
"",
“此处的内容”
"",
"",
""
].加入(“\n”);

output
现在是一个从表中构建的字符串,在添加到代码中时使用
\n
对换行符进行连接。

是的,javascript不喜欢这些空行。如果您想格式化html,可以采用以下两种方式之一:
1-在每个html行的末尾加反斜杠

    $(passOptions.options).each(function() {
    var output = "\
              <table id='placeholder2' class='table table-bordered'>\
                  <tbody>\
                      <tr>\
                         <td>\
                            <span class='primary-line'>Annual Power Pass</span><br /><span class='secondary-line'><a href='#'>Blockout Dates Apply</a></span>\
                         </td>" + 
                                "<td id='powerAP'>" + this.premiere + "<br />" + this.preferred 
                              + "</td>\
                      </tr>\
                   </tbody>\
                </table>";
    $('#pricing').append(output);
});
$(passOptions.options)。每个(函数(){
变量输出=”\
\
\
\
\
年度电力通行证
\ " + “+this.premiere+”
“+this.premiere” + "\ \ \ "; $(“#定价”)。追加(输出); });
或2— 连接输出:

var output = "<table id='placeholder2' class='table table-bordered'>";
output +=    "<tbody>";
output +="<tr>";
output +="<td>";
output+="<span class='primary-line'>Annual Power Pass</span><br /><span class='secondary-line'><a href='#'>Blockout Dates Apply</a></span>";
                         ....etc
var输出=”;
输出+=“”;
输出+=“”;
输出+=“”;
输出+=“年功率传递
”; 等
是的,javascript不喜欢那些空行。如果您想格式化html,可以采用以下两种方式之一:
1-在每个html行的末尾加反斜杠

    $(passOptions.options).each(function() {
    var output = "\
              <table id='placeholder2' class='table table-bordered'>\
                  <tbody>\
                      <tr>\
                         <td>\
                            <span class='primary-line'>Annual Power Pass</span><br /><span class='secondary-line'><a href='#'>Blockout Dates Apply</a></span>\
                         </td>" + 
                                "<td id='powerAP'>" + this.premiere + "<br />" + this.preferred 
                              + "</td>\
                      </tr>\
                   </tbody>\
                </table>";
    $('#pricing').append(output);
});
$(passOptions.options)。每个(函数(){
变量输出=”\
\
\
\
\
年度电力通行证
\ " + “+this.premiere+”
“+this.premiere” + "\ \ \ "; $(“#定价”)。追加(输出); });
或2— 连接输出:

var output = "<table id='placeholder2' class='table table-bordered'>";
output +=    "<tbody>";
output +="<tr>";
output +="<td>";
output+="<span class='primary-line'>Annual Power Pass</span><br /><span class='secondary-line'><a href='#'>Blockout Dates Apply</a></span>";
                         ....etc
var输出=”;
输出+=“”;
输出+=“”;
输出+=“”;
输出+=“年功率传递