- ベストアンサー
テーブルの生成
いつもお世話になっております。 JavaScriptを使ってテーブルを生成したいのですがうまくいかないのでアドバイスいただけないでしょうか? それと、 function MakeTable(iObj_A,iObj_B,iObj_C,iObj_D,iObj_E,iObj_F,iObj_G,iObj_H,iObj_I,iObj_J,iObj_K,iObj_L,iObj_L,iObj_M,iObj_N,iObj_O,iObj_P,iObj_Q,iObj_R){ をfunction MakeTable(iObj){ で表現するにはどこを変更したら良いのでしょうか? ファイルは↓にあります。 http://w6.oroti.com/~ryutan/test_table.html サーバーの都合上広告が表示されますが気にしないで下さい。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
function MakeTable(){ var ht ='<table border="1">'; ht+='<TR bgcolor="#d0d0d0"><TH colspan="2" rowspan="2">車種</TH><TH rowspan="2">初登場年</TH><TH colspan="2">現行型</TH><TH rowspan="2">備考</TH></TR>'; ht+='<TR bgColor="#d0d0d0"><TH>発表</TH><TH>マイナーチェンジ</TH></TR>"'; for( var i=0,m=arguments.length;i<m;i++){ var tmp = arguments[i]; ht += '<tr>'; ht += '<td><b>'+tmp.CarName+'</b></td>'; ht += '<td>'+tmp.CarName2+'</td>'; ht += '<td>'+tmp.Year+'</td>'; ht += '<td>'+tmp.PresentType+'</td>'; ht += '<td>'+tmp.Remarks+'</td>'; ht += '<td>'+tmp.Announcement+'</td>'; } document.getElementById('iTarget').innerHTML=ht+'</table>'; } CSSを使うべきだと思います。 今時 bgcolorだったり・・・ objectを使う意味は?だったり・・・ 表示するためにいちいち表を作成しているだったり・・・
その他の回答 (2)
- yyr446
- ベストアンサー率65% (870/1330)
ANo.2の方に同感です。よけいなお世話かもしれませんが、 オブジェクトを使うことを練習したいなら、innerHTML+= xxx の技は止めてDOMを使えば、オブジェクト志向ぽくなります。 「document.getElementById」を知ってるみたいなので、 document.createElementとか、.setAttributeとか.appendChild.とかを 使ってテーブルの中身を動的に作ってみては! (背景色とボーダー指定はCSSにして、こんな感じ) <style type="text/css"> <!-- .スタイルクラス { background-color:#d0d0d0; border:1px;} --> </style> <script type="text/javascript"><!-- ------ var table = document.getElementById("table_id"); var tbody = document.createElement("tbody"); for(var i=0,i<レコードの数;i++){ var rec = document.createElement("tr"); for(var j=0,j<プロパティの数;j++){ var fld = document.createElement("td"); fld.appendChild(document.createTextNode(data[j])); rec.appendChild(fld); } rec.setAttribute("class","スタイルクラス"); tbody.appendChild(rec); } table.appendChild(tbody); さらに、function MakeCher()でデータをセットしている部分も、 データをXMLで記述して、外部に置き、JAVASCRIPTでオブジェクトと して読み込んで処理すると、さらにオブジェクト志向ぽくなります。 そうすれば、初心者と思われません
お礼
ご指摘の通りCSSを使う事にしました。 今知人に課題を出してもらいそれを解いていってる所なんです。 これからも勉強して自分の物にしていきたいです。 回答ありがとう御座いました。
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
function MakeTable(iObj){ var iObj_A=iObj[0]; var iObj_B=iObj[1]; var iObj_C=iObj[2]; (以下略) }
お礼
ご指摘の通りCSSを利用する事にしました。 回答ありがとうございました。