insertBefore()で任意の場所にobjectを表示

このQ&Aのポイント
  • selectで選択した会社の製品リストを非同期に取得し、希望の場所に表示する方法
  • JavaScriptのajaxを使用してデータを取得し、選択した会社の製品リストを作成
  • insertBefore()メソッドを使用して希望の場所に製品リストを表示するが、エラーが発生している
回答を見る
  • ベストアンサー

insertBefore()で任意の場所にobjectを表示

やりたいことは、selectで選択した会社の製品リストgetData関数で非同期に取得して隣にselectで表示をしたいのです。非同期で取得して単純に表示するだけはできるのですが、希望の場所に表示しようと色々やってもうまくいきません。 以下にコードを載せます。 ================= 呼び出し側HTML============================= <select name="dvlname" id="dvlname" onchange="getData(this.options[this.selectedIndex].value,'dvlname');return false;"> <option value="JustSystems">JustSystems</option> <option value="Microsoft">Microsoft</option> <option value="Miracle Linux">Miracle Linux</option> 以下省略 ================================================================== ===================== javascript ========================== //products : 製品名の配列 //id : onChangeイベントが発生したselectオブジェクトのid function getData(vender,id) { ajax.open("GET", "get_prod.php?dev=" + encodeURI(vender),true); ajax.onreadystatechange = function() { if (ajax.readyState == 4 && ajax.status == 200) { var res = ajax.responseText; var products = res.split("\n"); //alert(vender); mkSelect(products,id); } } ajax.send(null); } function mkSelect(products,id) { var select; select = document.createElement("select"); var name = document.createElement("name"); name.value = "product"; for(i=0; i<products.length; i++){ // option要素作成 var option = document.createElement("option"); // option要素のvalue属性に選択項目データ option.value = products[i]; // テキストノード作成 var text = document.createTextNode(products[i]); // テキストノードをoption要素に追加 option.appendChild(text); // option要素をselect要素に追加 select.appendChild(option); } // select要素をform要素に追加 //document.getElementsByTagName("form")[0].appendChild(select); var nextEl = document.getElementById(id).nextSibling; alert(nextEl); document.insertBefore(select,nextEl); } ====================== script end =============================== 以上を実行すると以下のエラーとなります。 ちなみにコメントアウトしているappendChild(select)の文だとformの最後に表示されます。 ------------------------------------------------------------------- エラー: [Exception... "Node was not found" code: "8" nsresult: "0x80530008 (NS_ERROR_DOM_NOT_FOUND_ERR)" location: "http://192.168.49.125/js/scripts.js Line: 71"] ソースファイル: http://192.168.49.125/js/scripts.js 行: 71 -------------------------------------------------------------------- どうかよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.2

#1です。 getDataからmkSlelectにoFormを渡すのを忘れてました。 以下でテストしました。(一部簡略化、変更してます。) <html> <head> <script type="text/javascript"> function getData(Select) { var products = ['google','yahoo','goo'];//ajaxでの取得代わり mkSelect(products,Select); } function mkSelect(products,targetSelect) { var select = document.createElement("select"); for(i=0; i<products.length; i++){ var option = document.createElement("option"); option.value = products[i]; var text = document.createTextNode(products[i]); option.appendChild(text); select.appendChild(option); } var nextEl = targetSelect.nextSibling; targetSelect.form.insertBefore(select,nextEl); } </script> </head> <body> <form> <select name="dvlname" id="dvlname" onchange="getData(this);return false;"> <option value="JustSystems">JustSystems</option> <option value="Microsoft">Microsoft</option> <option value="Miracle Linux">Miracle Linux</option> </select> <input type="submit" value="ダミーボタン"><!--挿入位置確認用--> </form> </body> </html>

lovehiroko
質問者

お礼

丁寧にありがとうございます。 解決いたしました。onchangeイベントで渡すオブジェクトが間違っていたようです。 実際のところjavascriptについてまだ理解ができたわけではありませんが、当面やりたいことが実現できたので今後経験を積みながら理解できればと思います。 もうひとつ、よろしければ教えていただきたいのですが、現状だと最初のselectイベントを複数回繰り返すとオブジェクトが追加されていきますが、これを置き換えるようにするにはどうしたらよいのでしょうか? もしかしたらこれは別スレッドを立てたほうがよいのでしょうか? よろしくお願いいたします。

その他の回答 (2)

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.3

2回目以降は追加でなくて書き換えにする方法。 var nextEl = targetSelect.nextSibling; targetSelect.form.insertBefore(select,nextEl); こちらの処理をする時、一度実行された後はnextElは前回追加したselectになっています。 なので、nextElがselectだったらinsertBeforeの代わりにreplaceChildを使います。 if(nextEl.nodeType==1 && nextEl.tagName == 'SELECT') { targetSelect.form.replaceChild(select,nextEl); }else{ targetSelect.form.insertBefore(select,nextEl); } 他にもやりようはいろいろあるけど、パっと思いついた方法です。

lovehiroko
質問者

お礼

すばらしいです。 完全解決いたしました。どうもありがとうございます。 とても助かりました。

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

insertBeforeは追加したい親ノードのメソッドとして働きます。 なので、getDataを呼ぶ時に親フォームを追加で渡す onchange="getData(this.options[this.selectedIndex].value,'dvlname',this.form); getDataで親フォームを受取る function getData(vender,id,oForm) { inserBeforeを使う oForm.insertBefore(select,nextEl); で、大丈夫・・・かも。 この件と関係ないけど var name = document.createElement("name"); name.value = "product"; って、 select.name(又はid) = "product"; の間違い??

lovehiroko
質問者

お礼

回答ありがとうございます。 試してみましたが、まったく同じエラーとなりました。 色々ググッて試してみたのですが、なぜかどれもだめでした。 申し訳ありません。

関連するQ&A

  • 2個選択することで初めて表示というのができない

    <!DOCTYPE html> <html> <head> <title>プルダウンのメニューを表示を2つ設定</title> <script> function selectboxChange() { var value = document.forms.form1.Select1.value; var target = document.getElementById("output"); if (value == "要素1") { target.innerHTML = "合っています。"; } else { target.innerHTML = "間違っています。"; } } //--------------------- // function selectboxChange11() { var value = document.forms.form11.Select11.value; var target = document.getElementById("output11"); if (value == "要素11") { target.innerHTML = "合っています。"; } else { target.innerHTML = "間違っています。"; } } </script> </head> <body> <div>プルダウンのメニュー1</div> <form name="form1" action=""> <select id="Select1" onchange="selectboxChange();"> <option>---</option> <option value="要素1">要素1</option> <option>要素2</option> <option>要素3</option> <option>要素4</option> <option>要素5</option> </select> </form> <div id="output"></div> <div>プルダウンのメニュー2</div> <form name="form11" action=""> <select id="Select11" onchange="selectboxChange11();"> <option>---</option> <option value="要素11">要素1</option> <option>要素2</option> <option>要素3</option> <option>要素4</option> <option>要素5</option> </select> </form> <div id="output11"></div> </body> </html> ↑はjsの分ですが、 2個選んだら初めてイベントが発生するプログラムを作成しているのですが、 いかんせんうまくいきません。 恐らく、var value = document.forms.form1.Select1.value;のところで、躓いているのだと思います。 document.formsにカンマをつけてみたり、さらに、両端に[]をつけてみたり、いろいろ試しましたが、うまくいきません。 それとも、重ねること自体ができないのでしょうか。 どうしたらいいのでしょうか。

  • いつも参考にさせて頂いています。

    いつも参考にさせて頂いています。 javascriptでセレクトメニューを作っているのですが うまく出来ないのでどなたか教えて下さい。 宜しくおねがいします。 3連動するセレクトメニューで 3つ目のセレクトメニューを選ぶと 選ばれた項目に対応するURLに飛ぶように作っています。 ここからが質問なのですが、 ページに飛んだ時にセレクトメニューで選択した内容が消えてしまいます・・・ 飛んだ先のページでも、選択した内容を表示させるには どのようにすればいいのでしょうか? ご存知の方がいましたら教えて下さい。 ---html部分---- <html> <head> <script type="text/javascript" src="test.js"></script> </head> <body> <form id="f0"> <select id="s0"> <option value="">----------------</option> </select> <select id="s1"> <option value="">----------------</option> </select> <select id="s2"> <option value="">----------------</option> </select> </form> </body> </html> ---外部javascriptファイル---- var data= { 吉野家: { "牛丼(並)":{0:"380円"}, "牛丼(大盛)":{1:"480円"}, "牛丼(特盛)":{2:"630円"} } ,松屋: { "牛丼(並)":{3:"320円"}, "牛丼(大盛り)":{4:"420円"}, "牛丼(特盛)":{5:"520円"} } ,すき家: { "牛丼(並)":{6:"280円"}, "牛丼(大盛)":{7:"380円"}, "牛丼(特盛)":{8:"480円"} }; window.onload=function(){ s0=document.getElementById("s0"); s1=document.getElementById("s1"); s2=document.getElementById("s2"); setSelect(data,s0); s0.onchange=function(){ clearSelect(s2); if(this.value==""){ clearSelect(s1); }else{ setSelect(data[this.value],s1); } } s1.onchange=function(){ if(this.value==""){ clearSelect(s2); }else{ setSelect(data[s0.value][this.value],s2); } } s2.onchange=function(){ location.href="/////////"; } } function setSelect(obj,sel){ while(lc=sel.lastChild){ sel.removeChild(lc); }; var op=document.createElement("option"); op.setAttribute("value",""); op.appendChild(document.createTextNode("----------------")); sel.appendChild(op); for(var i in obj){ var txt=(typeof obj[i]=="object")?i:obj[i]; var op=document.createElement("option"); op.setAttribute("value",i); op.appendChild(document.createTextNode(txt)); sel.appendChild(op); } } function clearSelect(sel){ while(lc=sel.lastChild){ sel.removeChild(lc); }; var op=document.createElement("option"); op.appendChild(document.createTextNode("----------------")); sel.appendChild(op); };

  • プルダウンのメニューを表示を2つ設定。

    プルダウンのメニューを表示を2つ設定したいのですが、 どこが間違っているのでしょうか。 基本的にjsは、セレクタ名がかぶっていれば、機能しなくなります。 間違いをご指摘ください。 <!DOCTYPE html> <html> <head> <title></title> <script language="javascript" type="text/javascript"> function selectboxChange() { var val1 = document.forms.form1.Select1.value; var target = document.getElementById("output"); if (val1 == "要素1") { target.innerHTML = "合っています。"; } else { target.innerHTML = "間違っています。"; } } </script> </head> <body> <form name="form1" action=""> <select id="Select1" onchange="selectboxChange();"> <option>---</option> <option value1 == "要素1">要素1</option> <option>要素2</option> <option>要素3</option> <option>要素4</option> <option>要素5</option> </select> </form> <div id="output"></div> </body> </body> <script language="javascript" type="text/javascript"> function selectboxChange11() { var val11 = document.forms.form11.Select11.value; var target = document.getElementById("output11"); if (val11 == "要素11") { target.innerHTML = "合っています。"; } else { target.innerHTML = "間違っています。"; } } </script> </head> <body> <form name="form11" action=""> <select id="Select11" onchange="selectboxChange11();"> <option>---</option> <option value11 == "要素11">要素1</option> <option>要素2</option> <option>要素3</option> <option>要素4</option> <option>要素5</option> </select> </form> <div id="output11"></div> </body> </body> </html>

  • 検索表示について

    このようなプルダウン付きの検索バーを作成しています。 この検索結果をこの検索バーの下に表示させるためにはどうすればいいでしょうか?よろしくお願いします。 <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Script-Type" content="text/javascript"> </head> <body> <script type="text/javascript"> <!-- var site = new Array(); var target = "main"; site[0] = ["Goo", "http://search.goo.ne.jp/web.jsp", "MT", ["from", "USR"], ["IE", "sjis"]]; site[1] = ["Google", "http://www.google.com/search", "q", ["hl", "ja"], ["ie", "Shift_JIS"]]; site[2] = ["Yahoo", "http://search.yahoo.co.jp/bin/search", "p",["ei", "Shift_JIS"]]; window.onload = function() { if (!document.createElement) return; if (document.all && !window.clipboardData && !window.opera) return; // 検索サイトのリストを生成 var select = document.createElement("select"); select.id = "addlist"; for (var i = 0; i < site.length; i++) { var opt = document.createElement("option"); opt.value = i; var str = document.createTextNode(site[i][0]); opt.appendChild(str); select.appendChild(opt); } // デフォルトで選択状態にする場合はその配列番号を option[n] に指定 // select.options[3].selected = true; // 既存の検索フォームにこのドロップダウンを追加 var obj = document.forms[0]; obj.elements[obj.elements.length - 1].value = "検索"; obj.insertBefore(select, obj.elements[1]); // フォームが送信された時に selectSearch() を呼び出す obj.onsubmit = selectSearch; } function jump(){ var url = document.form.select.options[document.form.select.selectedIndex].value; if(url != "" ){ if(target == 'top'){ top.location.href = url; } else if(target == 'blank'){ window.open(url, 'window_name'); } else if(target != ""){ eval('parent.' + target + '.location.href = url'); } else{ location.href = url; } } } function selectSearch() { var str = document.forms[0].p.value; // 入力された検索文字 var num = document.forms[0].addlist.value; // 選択されたリストの番号 // 選択された検索サイトのフォーム生成(送信先の指定) var setform = document.createElement("form"); setform.action = site[num][1]; setform.method = "GET"; // setform.target = "_blank"; // 検索結果を新しいウインドウに表示する場合に追加 // 検索文字クエリ var query = document.createElement("input"); query.type = "hidden"; query.name = site[num][2]; query.value = str; setform.appendChild(query); // 検索文字以外のクエリ if (site[num].length > 3) { for (var i = 3; i < site[num].length; i++) { var extra = document.createElement("input"); extra.type = "hidden"; extra.name = site[num][i][0]; extra.value = site[num][i][1]; setform.appendChild(extra); } } // 生成したフォームを文末に追加してそのフォームを送信 document.body.appendChild(setform); setform.submit(); // document.forms[document.forms.length - 1].submit(); return false; } // --> </script> <br> <form action="http://search.yahoo.co.jp/bin/search" method="GET"> <input type="text" name="p" value="" size="50" maxlength=255 > <input type="submit" value="検索"> </form> </body> </html>

  • テーブルにおける行(セルにプルダウン含む)の追加方法

    追加ボタンを押度に,テーブルに1行ずつ追加されるプログラムを組んでいるのですが,追加ボタンを押しても何も起こりません.1行には,テキストボックスとプルダウンメニューの2つのセルが含まれます.テキストボックスのみであれば,追加に成功します. プルダウンのメニュー項目の追加方法ではなく,プルダウン自体を複製して追加していきたいのですが,参考サイトが見つかりませんでした.また,各行を識別する為一意の名前をつけたいのですが,どう記述したらよろしいでしょうか. お手数おかけしますが,下記ソースのどこが間違っているのか,どう処理すべきなのかを,ご教示頂けますでしょうか.お願い致します. <BODY> <TABLE id="Table1"> <TR> <td class="cellWhite"><input type="text" value="単語入力" onFocus="cText(this)" onBlur="sText(this)" style="color:#999"></td> <td bgcolor="#5096C9" width="113px"> <select name="column"> <option value="00">赤</option> <option value="01">青</option> <option value="02">黄</option> </select></td></tr></TABLE> <INPUT TYPE="button" VALUE="行追加" onclick="addRow()"> <script language="JavaScript"> function addRow() {  var tbl = document.getElementById("Table1").firstChild;  if (!tbl.tagName) {    tbl = document.getElementById("Table1");}  var tr = document.createElement("tr");  var td1 = document.createElement("td");  td1.setAttribute("class","cellWhite");  var tx1 = document.createElement("input");  tx1.setAttribute("type","text");  tx1.setAttribute("value","単語入力");  tx1.setAttribute("onFocus","cText(this)");  tx1.setAttribute("onBlur","sText(this)");  tx1.setAttribute("style","color:#999");  td1.appendChild(tx1);  var td2 = document.createElement("td");  var selectName="column";//selectの名前  var options={0:"赤",1:"青",2:"黄"};  var c=sel.firstChild;  while(c){   if(c.name==selectName) sel.removeChild(c);     c=c.nextSibling;}   var e=document.createElement("select");   e.setAttribute("name",selectName);   for(var i in options){     var o=document.createElement("option");     o.setAttribute("value",options[i]);     o.appendChild(document.createTextNode(options[i]));     e.appendChild(o);}   sel.appendChild(e);   tr.appendChild(td1);tr.appendChild(td2);tbl.appendChild(tr);}</script> 参考にしたサイトです: http://oshiete1.watch.impress.co.jp/qa4074195.html http://okwave.jp/qa299889.html

  • select option value が IE だけで動かない

    select の option 項目を追加する javascript を組んでいるのですが IE だけ項目追加ができません。Windows の Firefox2、Safari は期待 通りに項目が追加できました。 option.value を指定しないと IE でも追加できます。IE 専用に特別な 別プログラムが必要なのでしょうか。ご存知の方よろしくお願いします。 var selectBox = document.getElementById("select1"); var option = document.createElement('option'); option.setAttribute('value','my_value'); option.appendChild(document.createTextNode('my_text')); selectBox.appendChild(option); 3行目をコメントアウトすれば IE でも select にデータが追加され ますが、肝心の value がないのでプログラム的にダメなんです。

  • selectのonChangeが動作しません

    createElementで、フォームを生成しています。 コンボボックスが変更されたら、アラームを表示させるようにしたいのですが上手くいきません。 どのようにしたら、良いのでしょうか? よろしくお願いします。 以下ソースになります。 上から24行目付近で、selectにonChangeを設定しています。 -------------------------------------------------------------------- <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>テスト</title> <script type="text/javascript"> function test() { var buf = document.createElement('div'); buf.innerHTML = document.form1.src.value; var nodes = buf.querySelectorAll('*[class="line"]'); //formの生成 var Frm = document.getElementById("setform"); //要素を表示する場所(親要素) var Form = document.createElement("form"); //新規にform要素を生成 Form.name = "dynform"; Frm.appendChild(Form); //Frmの子要素としてFormを追加 // select要素 コンボボックス作成 var Slt = document.createElement("select"); //selectタグを生成 Slt.name = "stasel"; Slt.id = "stasel"; Slt.onChange = "alert('今だ')"; //この部分でselectにonChange を設定している Slt.size="1"; //コンボボックス用にサイズを1にする for (var i=0; i<nodes.length; i++) { var Ops = document.createElement("option"); if (/Firefox/.test(navigator.userAgent)) { var regm = nodes[i].rows[0].cells[0].textContent.match(/20[0-9][0-9]年[0-1]?[0-9]月/); } else { var regm = nodes[i].rows[0].cells[0].innerText.match(/20[0-9][0-9]年[0-1]?[0-9]月/); } var listval = document.createTextNode(regm); //生成する要素の文字列 Ops.value = regm; Ops.appendChild(listval); //Spnに表示する文字列追加 Slt.appendChild(Ops); //Sltの子要素としてOpsを追加 } Frm.appendChild(Slt); //Frmの子要素としてSltを追加 var Br=document.createElement("br"); //改行 Frm.appendChild(Br); //Frmの子要素としてBrを追加 var Br=document.createElement("br"); //改行 Frm.appendChild(Br); //Frmの子要素としてBrを追加 document.getElementById('stasel').options[0].selected = true; } // --> </script> </head> <body> <p>自動出力</p> <form name="form1"> <p>テキストエリアにソースを張り付けて下さい</p> <p> <textarea id="src" rows="5" cols="200"> </textarea> </p> <p> <input type="button" value="実行" onClick="test()"> </p> </form> <div id="setform"> </div> </body> </html> -------------------------------------------------------------------- 以下の文をテキストエリアに入力しています。 -------------------------------------------------------------------- <table class="line"> <tr> <td>2011年1月14日</td> </tr> </table> <table class="line"> <tr> <td>2011年2月14日</td> </tr> </table> <table class="line"> <tr> <td>2011年3月14日</td> </tr> </table> <table class="line"> <tr> <td>2011年4月14日</td> </tr> </table> --------------------------------------------------------------------

  • 日付から曜日を表示したい

    現在、HTMLでJavaScriptを用いたホームページを作成しています。 プルダウンリストの日付から閏年に対応しているソースコードを参考にして組んだまでは 良かったのですが、プルダウンリストで選択された年月日から曜日の抽出がうまくいかず悩んでいます。 以下、少しわかりにくいですがイメージです。 2015   年   1   月   1  日    → ○曜日 2016       2       2 2017       3       3  ~        ~       ~ 2030       12      31 具体的なヒントやソースを頂けないでしょうか? よろしくお願いします。 原状のbodyの中身を書いておきます。  <form name="formDate"> <label>申請日:</label> <select name="selectYear" onchange="setSelectMonth()"></select> <label>年</label> <select name="selectMonth" onchange="setSelectDate()"></select> <label>月</label> <select name="selectDate"></select> <label>日</label> <select name="selectWeek" onchange="setSelectyear()" onchange="setSelectMonth()" onchange="setSelectDate()"disabled> <OPTION>日曜日<OPTION>月曜日<OPTION>火曜日<OPTION>水曜日<OPTION>木曜日<OPTION>金曜日<OPTION>土曜日 </select> </form> <script type="text/javascript"> <!--初期値設定--> var Now = new Date(); var NowYear = Now.getFullYear(); var NowMonth = Now.getMonth()+1; var NowDate = Now.getDate(); var NowWeek = Now.getDay(); <!--閏年--> function Uruu( Year ){ var uruu = ( Year%400==0 ) ? true : ( Year%100==0 ) ? false : ( Year%4==0 ) ? true : false; return uruu; } <!--年--> function setSelectYear(){ for(var y=NowYear;y<NowYear+6;y var select = document.formDate.selectYear; var option = select.appendChild( document.createElement('option') ); option.value = y; option.text = y; option.selected = ( y==NowYear ) ? 'selected' : false; } setSelectMonth(); } setSelectYear(); <!--月--> function setSelectMonth(){ var Year = document.formDate.selectYear.options[document.formDate.selectYear.selectedIndex].value; var select = document.formDate.selectMonth;// while( select.options.length ){ select.removeChild( select.options[0] ); } for(var m=1;m<=12;m++){ var option = select.appendChild( document.createElement('option') ); option.value = m; option.text = m; option.selected = ( Year==NowYear ) ? ( ( m==NowMonth ) ? 'selected' : false ) : ( ( m==1 ) ? 'selected' : false ); option.disabled = ( Year==NowYear ) ? ( ( m<NowMonth ) ? 'disabled' : false ) : false; } setSelectDate(); } <!--日--> function setSelectDate(){ var Year = document.formDate.selectYear.options[document.formDate.selectYear.selectedIndex].value; var Month = document.formDate.selectMonth.options[document.formDate.selectMonth.selectedIndex].value; var days = [31,( Uruu(Year) ? 29 : 28 ),31,30,31,30,31,31,30,31,30,31]; var select = document.formDate.selectDate; while( select.options.length ){select.removeChild( select.options[0] );} for(var d=1;d<=days[Month-1];d++){ var option = select.appendChild( document.createElement('option') ); option.value = d; option.text = d; option.select = ( Year==NowYear && Month==NowMonth ) ? ( ( d==NowDate ) ? 'selected' : false ) : ( ( d==1 ) ? 'selected' : false ); option.disabled = ( Year==NowYear && Month==NowMonth ) ? ( ( d<NowDate ) ? 'disabled' : false ) : false; } } </script>

  • 記述方法について

    よろしくお願いします。前回こちらで教えて頂いたソースを 基に表示するテーブルの並び方を変えたいと思っています。 理想の並び方は、例として くま さる           くま  さる ごりら  これらを→ごりら うま  うま           りす りす というように読み込んだエクセルのレコードを2列ずつにして表したいのですが、可能でしょうか? 以下のソースを基に、色々試したのですが、ブラウザ上には何も出てきません。 -------------------------------------------------------------- <html> <head> <title>TEST CSV IN</title> <script type="text/javascript"> function hoge(){ var TEST = document.getElementById("TEST"); var output = document.getElementById("OUTPUT"); var table = document.createElement("table"); table.setAttribute("border","1"); table.setAttribute("datasrc","#TEST"); var tbody = document.createElement("tbody"); var trs = new Array(); var tds = new Array(); TEST.Reset(); var rs = TEST.recordset; while (!rs.EOF){ var tbl = document.createElement("table"); table.setAttribute("border","1"); var td = document.createElement("td"); for(var i=1; i<2; i++){   var tr = document.createElement("tr");   trs[0] = document.createElement("tr");   trs[1] = document.createElement("tr");   trs[2] = document.createElement("tr"); tds[0] = document.createElement("td"); tds[1] = document.createElement("td"); tds[2] = document.createElement("td"); var img = document.createElement("img"); img.setAttribute("src",rs.fields(0)); img.setAttribute("alt",""); tds[0].appendChild(img); tds[1].innerText = rs.fields(1); tds[2].innerText = rs.fields(2); trs[0].appendChild(tds[0]); trs[1].appendChild(tds[1]); trs[2].appendChild(tds[2]); tr.appendChild(trs[0]); tr.appendChild(trs[1]); tr.appendChild(trs[2]); tbody.appendChild(tr); } rs.MoveNext; } table.appendChild(tbody); output.appendChild(table); } </script> </head> <body onload="hoge();"> CSV DATA IMPORT Ver MINO <p> <object id="TEST" classid="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83"> <param name="DataURL" value="cn.csv" /> <param name="UseHeader" value="true" /> <param name="TextQualifier" value="'"> <param name="FieldDelim" value=","> </object> <div id="OUTPUT"> </div> </body> </html> ------------------------------------------------------------- javascriptを始めたばかりなので、まだよく理解していないので 大変申し訳ありませんが、ご指導願えればと思います。 よろしくお願いします。

  • borderの指定方法

    var tbl = document.createElement("table"); var tbd = document.createElement("tbody"); var tr = document.createElement("tr"); var td = document.createElement("td"); td.appendChild(document.createTextNode("テストテーブル")); tr.appendChild(td); tbd.appendChild(tr); tbl.appendChild(tbd); DOMで書いたテーブルのTD要素のボーダーの指定方法で、下線だけ表示しないで枠をつけたいのですが、どのようにすればよいのでしょうか? どなたか教えてください。 よろしくお願いします。

専門家に質問してみよう