2017-12-02 2 views
-1

私は宿題をする必要がありますが、とてもシンプルですが、すべてが正しいですが、テーブルクラスだけは動作しません。実行されると、テーブルは表示されますが、クラスはありませんcharacteriscts境界線の色、幅など)。javascriptで生成されたテーブルクラス

どうすればこの問題を解決できますか?

function Gerar() { 
 
    if (Entrada.C.value < 0 || Entrada.C.value > 10 || Entrada.L.value < 0 || Entrada.L.value > 10) 
 
    alert("As colunas e linhas devem ser positivas e menores que 10 (dez)"); 
 
    else { 
 
    var C, L, contl = 0, 
 
     contc = 0; 
 

 
    L = Entrada.L.value; 
 
    C = Entrada.C.value; 
 

 
    document.write("<table class='Tabela'>"); 
 

 
    for (i = 0; i < L; i++) { 
 
     document.write("<tr>"); 
 

 
     contl += 1; 
 

 
     for (j = 0; j < C; j++) { 
 
     contc += 1; 
 
     document.write("<td> " + contc + "," + contl + " </td>"); 
 
     } 
 

 
     j = 0; 
 

 
     document.write("</tr>"); 
 

 
     contc = 0; 
 
    } 
 

 
    document.write("</table>"); 
 
    } 
 
}
.Tabela { 
 
    border-color: blue; 
 
    border-style: solid; 
 
    border-width: 4px; 
 
}
<form id="Entrada"> 
 
    <table> 
 
    <tr> 
 
     <td>Coluna:</td> 
 
     <td><input type="text" name="C" size="1" /></td> 
 
    </tr> 
 
    <tr> 
 
     <td>Linha:</td> 
 
     <td><input type="text" name="L" size="1" /></td> 
 
    </tr> 
 
    <tr> 
 
     <td colspan="2" align="center"><input type="button" value="Ok" onclick="Gerar();" /></td> 
 
    </tr> 
 
    </table> 
 
</form>

+2

あなたは 'のdocument.write()を使用しないようにしたいかもしれません;'要素を追加します。 [** document.createElement()**](https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement)の使用を見てください。これはまた、 'Entrada.C'があなたの質問に表示されておらず、' Gerar() 'への呼び出しがあなたの質問のソースコードにないので、作業しているものの作業例を作成してください。 – NewToJS

+0

おそらく、この[** JsFiddle **](https://jsfiddle.net/ypyzoLtz/)が役に立ちます。 ** 404_DisplayName **へのクレジットは、私が行ったすべてのことが、あなたの更新されたソースコードと以下の回答を組み合わせたものです。 – NewToJS

+0

また、 'document.write()'の使用を本当に主張しているなら、 'document.write(" " ); '' document.write( ""); '[** JsFiddle Demo **](https://jsfiddle.net/tvmawykL/)の直後にCSSが適用されない理由は' document.write () 'はページからすべてのHTML要素を削除しています。 – NewToJS

答えて

0

あなたは文字列にタグを書くのではなく、DOMを使用する必要があります。

だから、これはDOMベースのソリューションの一例です:

function createTable(intRows, intColomns) 
{ 
    var objTable = document.createElement("table"); 
    objTable.setAttribute("class", "Tabela") // Here goes your class to make the css work 
    for (var i = 0; i < intRows; i++) { 
     var objRow = document.createElement("tr") 
     for (var j = 0; j < intColomns; j++) { 
      var objColomn = document.createElement("td") 
      objColomn.innerHTML = j + ", " + i; 
      objRow.appendChild(objColomn); 
     } 
     objTable.appendChild(objRow); 
    } 
    document.body.appendChild(objTable); 
} 

また、あなたの「OK」ボタン

それらを一意にするために、「ID」に「名前」からの入力を変更する必要がありますでしょう

:あなたは本当にdocument.writeを()(私はお勧めしません)あなたがインラインソリューションのために行くことができますを維持したい場合は

<input type="button" value="Ok" onclick="createTable(document.getElementById('L').value, document.getElementById('C').value);" /> 

:このような何かを見てより

document.write("<table style='border-color: blue; border-style: solid; border-width: 4px;'>"); 

代わりの

document.write("<table class='Tabela'>"); 
+0

ありがとう!私はちょうど今学期にそれを学び始めた。 :) – Costa

+0

あなたのコーディングの旅を楽しんでください。 –

関連する問題