如何在document.write函数中转义html <tag>

时间:2016-12-20 17:28:44

标签: javascript html

我想在javascript上的标签内部绘制HTML代码的文字字符串,我试图逃避它但不起作用。

function paint_string(n){
        document.write("'<table>'");
            for (i in rango(0,n)){
                document.write("'<tr><td></td></tr>'");
            }
        document.write("'</table>'");
}

3 个答案:

答案 0 :(得分:1)

您的实施中存在太多问题。

  1. 您使用''document.write("'<table>'");
  2. 围绕您的代码
  3. 您正在使用document.write(),这可能会非常危险。
  4. 您在标签打开和关闭之间进行拆分,这在HTML中不起作用 当您放置document.write('<table>')时,浏览器会自动填充<table></table>
  5. 不确定rango(0, n)是什么以及您将如何在此处使用它。
  6. 您需要的是构建HTML并更新特定元素的innerHTML

    function paint_string (n, el) {
      var finalHtml = '<table>';
      for (i in rango(0, n)) {
        finalHtml += '<tr><td></td></tr>';
      }
      finalHtml += '</table>';
      document.getElementById(el).innerHTML = finalHtml;
    }
    

    我创建了一个可能适用于您的代码的工作代码段。

    function paint_string (n, el) {
      var finalHtml = '<table border="1" cellspacing="1" cellpadding="1" width="100%">';
      for (var i = 0; i < n; i++) {
        finalHtml += '<tr><td>&nbsp;</td></tr>';
      }
      finalHtml += '</table>';
      document.getElementById(el).innerHTML = finalHtml;
    }
    paint_string(5, "hello");
    <div id="hello"></div>

    或者如果我理解你的问题,你想把文字作为HTML,那么你需要这样做:

    function paint_string (n, el) {
      var finalHtml = '<table border="1" cellspacing="1" cellpadding="1" width="100%">\n';
      for (var i = 0; i < n; i++) {
        finalHtml += '<tr><td></td></tr>\n';
      }
      finalHtml += '</table>\n';
      document.getElementById(el).textContent = finalHtml;
    }
    paint_string(5, "hello");
    <pre id="hello"></pre>

答案 1 :(得分:0)

只需删除单引号,如:

function paint_string(n) {
    document.write("<table>");
    for (i in rango(0, n)) {
        document.write("<tr><td></td></tr>");
    }
    document.write("</table>");
}

答案 2 :(得分:0)

我对&lt;使用"<"&gt;使用">"

function paint_string(n){
    document.write('&lt;table&gt;');
        for (i in rango(0,n)){
            document.write('&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;');
        }
    document.write('&lt;/table&gt;');
}