2016-12-20 7 views
2

私はJavaScriptのタグ内のHTMLコードのリテラル文字列をペイントしたいと思いますが、私はそれをエスケープしようとしますが、それは動作しません。どのようにHTMLをエスケープする<tag> document.write関数内

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

「タグは機能しません」とはどういう意味ですか? –

+1

ページにHTMLのリテラル文字列を挿入しようとしていますか、またはテーブルが必要ですか? –

+0

代わりに 'document.createElement'を使用してみてください:http://www.w3schools.com/jsref/met_document_createelement.asp –

答えて

1

実装には多すぎる問題があります。

  1. あなたは''でタグを囲むされています。あなたはそれができる限り危険ですdocument.write()を、使用しているdocument.write("'<table>'");
  2. HTMLで動作しないタグの開閉の間で分割しています。
    document.write('<table>')と入力すると、ブラウザのオートコンプリートは<table></table>となります。
  3. rango(0, n)が何であるか、またここでどのように使用するかわかりません。

必要なのは、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>

+0

と<< と> –

+0

@ymd_と<< と> > –

+0

@ymd_私があなたに与えたことは、 'textContent'メソッドです。 'document.write()'関数を使わないでください。 –

0

ちょうどレモ私は"<"">"ため&gt;ため&lt;を使用

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

手入れが行き届いていますか? – RamenChef

0

:のような単一引用符VEの。

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;'); 
} 
+0

また、最後に ';'を忘れないでください。あなたの答えを編集する。そして、あなたは '' 'を忘れてしまった... –

+0

'; 'と' ''なしで動作します。 –

+0

うわー、まったくありませんが、うまくいけば良いです。 ':)' –

関連する問題