質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

3回答

2531閲覧

javascript domによる九九の作成時のエラー 

nasio777

総合スコア12

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2016/12/02 09:15

javascriptについて質問です。
現在9x9の表をdomを用いて行おうとしているのですが、うまく行きません。
一応、document.writeではうまくいきました。
また、下記の表は外枠ですが既にエラーとなってしまいます。

エラー表記は「 console.error('Could not create SImpleDOM structure mostly cause of malformed HTML');」

わかる方いましたら、よろしくお願いします。

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>問06</title> </head> <body> <h1>9x9までの九九早見表</h1> <table border= '1';> <p id='main'></p> <script> var str= document.getElementById('main'); str.innerHTML=('<tr><th> </th>'); str.innerHTML=('</tr>'); </script> </table> </body> </html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

エラーによるとHTMLが不正だといわれているのでinnerHTMLの記述に誤った箇所があるのではないでしょうか。

str.innerHTML=('</tr>');

とかが原因なのでは?
あと、tableのborderを指定しているところにも少しおかしいところがありますね。
私ならばこんな感じで書いてみますね。

HTML

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="utf-8"> 5 <title>九九表</title> 6</head> 7<body> 8<div id="container"></div> 9<script> 10 var table = document.createElement('table'), tr, td, row, cell; 11 for (row = 1; row < 10; row++) { 12 tr = document.createElement('tr'); 13 for (cell = 1; cell < 10; cell++) { 14 td = document.createElement('td'); 15 tr.appendChild(td); 16 td.innerHTML = row * cell; 17 } 18 table.appendChild(tr); 19 } 20 document.getElementById('container').appendChild(table); 21</script> 22</body> 23</html>

投稿2016/12/02 09:42

編集2016/12/02 09:44
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

domをどう捉えるか次第でしょうね
こんな感じでどうでしょうか?

HTML

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4<meta charset="utf-8"> 5<title>問06</title> 6<script> 7window.onload=function(){ 8 var p=document.getElementById('main'); 9 var t=document.createElement('table'); 10 var tb=document.createElement('tbody'); 11 p.appendChild(t); 12 t.appendChild(tb); 13 t.setAttribute('border','1');//追記 14 for(var i=0;i<=9;i++){ 15 var tr=document.createElement('tr'); 16 for(var j=0;j<=9;j++){ 17 if(i==0 || j==0){ 18 var th=document.createElement('th'); 19 if(i==0 && j==0){ 20 th.appendChild(document.createTextNode(' ')); 21 }else if(i==0){ 22 th.appendChild(document.createTextNode((j).toString())); 23 }else{ 24 th.appendChild(document.createTextNode((i).toString())); 25 } 26 tr.appendChild(th); 27 }else{ 28 var td=document.createElement('td'); 29 td.appendChild(document.createTextNode((i*j).toString())); 30 tr.appendChild(td); 31 } 32 } 33 tb.appendChild(tr); 34 } 35} 36</script> 37</head> 38 39<body> 40<h1>9x9までの九九早見表</h1> 41<p id='main'></p> 42</p> 43</body> 44</html>

投稿2016/12/02 09:31

編集2016/12/02 10:00
yambejp

総合スコア114777

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2016/12/02 10:00

borderの設定が抜けていたので追記しておきました
guest

0

innerHTMLを書き換えていく場合、document.writeと違って「開きタグだけ書いてあとから閉じタグを足す」ようなことはできません。開始タグから終了タグまで一気に書く必要があります。

投稿2016/12/02 09:20

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問