• ベストアンサー

JavaScript 変数をメソッドに代入する方法

<SCRIPT LANGAGE="JavaScript"> var prop=new Array("title","lastModified","bgColor","fgColor","alinkColor","linkColor","vlinkColor"); for(i=0; i<7; i++){ document.write(document.prop[i],"<BR>"); } </SCRIPT> お世話になります。 上記ソースが動きません。 オブジェクトのメソッドに配列を代入することはできるのでしょうか?

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

  • ベストアンサー
  • kokucho81
  • ベストアンサー率61% (157/255)
回答No.1

言いたいことが今ひとつであるが、 <SCRIPT LANGAGE="JavaScript"> var prop=new Array("title","lastModified","bgColor","fgColor","alinkColor","linkColor","vlinkColor"); for(i=0; i<prop.length; i++){ document.write( eval("document."+prop[i]),"<BR>"); } </SCRIPT> こういうことがしたいのですかいな?

hyperbird
質問者

お礼

そのとおりです。 どうもありがとうございました。

関連するQ&A

  • JavaScript配列の先入れ先出しIEのバグ?

    参考資料はO'REILLY初めてのJavaScript(第2版)です。 function pushPop() { //Fifo待ち行列を作成し、pushを使ってアイテムの追加 var fifoArray = new Array(); fifoArray.push("林檎"); fifoArray.push("バナナ"); var ln = fifoArray.push("桜桃"); //長さと配列を表示 document.writeln("長さは" + ln + "で、行列の順番は" + fifoArray + "です。<br />"); document.writeln("<p>"); //shiftを使って配列からアイテムを外す for (var i = 0; i < ln; i++) { document.writeln(fifoArray.shift() + "を取り出します。今の順番は[" + fifoArray + "]です。<br />"); } //長さを表示 document.writeln("長さは" + fifoArray.length + "となりました<br /><br />"); //次に、popとunshiftも同様に行う var fifoNewArray = new Array(); fifoNewArray.unshift("初めての"); fifoNewArray.unshift("Java"); ln = fifoNewArray.unshift("Script"); document.writeln("長さは" + ln + "で配列は[" + fifoNewArray + "]となりました。<br />"); //pop for (i = 0; i < ln; i++) { document.writeln("「" + fifoNewArray.pop() + "」を取り出します。配列は[ " + fifoNewArray + "]となりました。<br />"); } document.writeln("長さは" + fifoNewArray.length + "となりました。"); document.writeln("</p>"); } Google Chromeでは以下のように書籍通りになりました。 /*---------Google Chrome実行結果---------*/ 長さは3で、行列の順番は林檎,バナナ,桜桃です。 林檎を取り出します。今の順番は[バナナ,桜桃]です。 バナナを取り出します。今の順番は[桜桃]です。 桜桃を取り出します。今の順番は[]です。 長さは0となりました 長さは3で配列は[Script,Java,初めての]となりました。 「初めての」を取り出します。配列は[ Script,Java]となりました。 「Java」を取り出します。配列は[ Script]となりました。 「Script」を取り出します。配列は[ ]となりました。 長さは0となりました。 /*---------Google Chrome実行結果(END)---------*/ IEに関しては、以下のように配列の長さは未定義になり pop(メソッド)を使って配列の最後の要素を削除したいのですができません 長くなりましたが回答の方、宜しくお願いします!!! /*---------IE実行結果---------*/ 長さは3で、行列の順番は林檎,バナナ,桜桃です。 林檎を取り出します。今の順番は[バナナ,桜桃]です。 バナナを取り出します。今の順番は[桜桃]です。 桜桃を取り出します。今の順番は[]です。 長さは0となりました 長さはundefinedで配列は[Script,Java,初めての]となりました。 長さは3となりました。 /*---------IE実行結果(END)---------*/

  • 配列 代入

    JavaScript初心者です。 配列の代入で困っています。 var nums=new Array(); for(var i=0;i<3;i++){ nums[i]=i; // ☆ } // nums [0,1,2] ☆の行(コード)をnums.push=i; とするとnumsに2しか入っていないのですが、どういう仕組みでしょうか? よろしくお願いします。

  • VBscriptの配列変数をJavascriptで使うには

    下記ソースでVBscriptの配列変数をJavascriptで使うにはどうしたらいいでしょうか。 vbscriptで配列stat2(i)に値セット後javascriptで使いたい <script type="text/javascript"> <!-- //===== function test(){ var i; for (i=0;i<9;i++){ document.form1.text1[i].value=<%=stat2(i)%>; <-これだとエラー } } //====== //--> </script>

  • Javascript; フィールドの属性変更

    作成したフォームに対してJavaScriptでの処理を行おうとしています。 セットした社名やDB検索した値の属性変更をしたいのですが、下記エラーが表示されます。 どのような対策がございますか? SCRIPT5007: プロパティ 'readOnly' の値を設定できません: オブジェクトは Null または未定義です。 SCRIPT5007: プロパティ 'onchange' の値を設定できません: オブジェクトは Null または未定義です。 下記のJavaScriptでの処理を行おうとしています。 function SetEvent() { document.getElementById("CompanyTextBox").readOnly="readonly";  //ここで、エラーになります。 //DB検索処理........ //配列 var counter = 0; var code = new Array(); for (var i = 0; i <10; i++) { code[i] = new Array(); code[i][0] = 'TextBox' + ((i * 4) + 1); code[i][1] = 'TextBox' + ((i * 4) + 2); document.getElementById(code[i][1]).readOnly="readonly"; //ここで、エラーになります。 } //検索結果のセット do { var elem = document.getElementById(code[counter][0]); elem.onchange = function(event) //ここで、エラーになります。 ・ ・ counter++; } while(counter < 10) }

  • Javascriptの変数の中に変数を代入するには

    Google chart というAPIがあります。これを利用して株価Chartを作ります。 https://google-developers.appspot.com/chart/interactive/docs/gallery/candlestickchart 末尾にGoogle Chartのソースを記載していますが このvar data内の ['Mon', 20, 28, 38, 45], ['Tue', 31, 38, 55, 66], ['Wed', 50, 55, 77, 80], ['Thu', 77, 77, 66, 50], ['Fri', 68, 66, 22, 15] の部分を変更することによりローソクチャートが引けます。 一方、 <script type="text/javascript"> var chart; chart = "<div id='chart'></div>"; document.write("" + chart + ""); </script> と記載すると ['Mon', 20, 28, 38, 45], ['Tue', 31, 38, 55, 66], ['Wed', 50, 55, 77, 80], ['Thu', 77, 77, 66, 50], ['Fri', 68, 66, 22, 15] のような株価変数が取得できるjavascriptを作成しました。 この2つを組み合わせると、株価チャートが引けることとなります。 ************************ 現在の苦境状況 ************************ Google chart APIに、下記のように「document.write("" + chart + ""); または "" + chart + "";または  + chart + ;」を代入してみたのですが、チャートは表示されません。 変数の中に変数を入れたことが原因と思いますが、どのようにすればいいかアドバイス願います。 <script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type="text/javascript"> var chart; chart = "<div id='chart'></div>"; google.load("visualization", "1", {packages:["corechart"]}); google.setOnLoadCallback(drawChart); function drawChart() { var data = google.visualization.arrayToDataTable([ document.write("" + chart + ""); ], true); var options = { legend:'none' }; var chart = new google.visualization.CandlestickChart(document.getElementById('chart_div')); chart.draw(data, options); } </script> </head> <body> <div id="chart_div" style="width: 900px; height: 500px;"></div> ************************ GoogleChart ************************ <script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type="text/javascript"> google.load("visualization", "1", {packages:["corechart"]}); google.setOnLoadCallback(drawChart); function drawChart() { var data = google.visualization.arrayToDataTable([ ['Mon', 20, 28, 38, 45], ['Tue', 31, 38, 55, 66], ['Wed', 50, 55, 77, 80], ['Thu', 77, 77, 66, 50], ['Fri', 68, 66, 22, 15] ], true); var options = { legend:'none' }; var chart = new google.visualization.CandlestickChart(document.getElementById('chart_div')); chart.draw(data, options); } </script> </head> <body> <div id="chart_div" style="width: 900px; height: 500px;"></div>

  • javascriptのtextbox

    こんばんは。 <html> <body> <center> <br><br> <form name="fuji"> TEXT BOX<br> <input type="text" name="tex"> </form> <SCRIPT type="text/javascript"> var i; i="ABC" document.write("<input type='button' value='↑を変数iに代入' onClick='i=(document.fuji.tex);'>"); document.write("<br><input type='button' value='表示' onClick='document.write(i);'>"); </SCRIPT> </center> </body> </html> でテキストボックスの中身を表示させたいのですが、 上手くいきません。どうすればいいのでしょうか。 また、変数を使わずに直接テキストボックスの中身を 表示させる事はできるのでしょうか。 教えてください。

  • javascript 親オブジェクトと子オブジェクトを分離させたい

    例えばjavascriptで下のようなコードを書いたとします。 a=new Array() a[0]=new OBJ(); function OBJ(){ this.prop=document.getElementById('aaa') this.prop2=document.getElementById('bbb') } a[0].prop.addEventListener(click,func,false); function func(){ ??? } func()関数内でthisを使うとa[0].propを参照できます。 一方、a[0].prop2を参照するにはどうすればいいのでしょうか? 配列の要素番号を指定しないで参照させる方法が分からず悩んでいます。 下のようにもしできるのであればいいのですが。。。 a[0]とpropのオブジェクトを分割->a[0]オブジェクトを抜き出し-> a[0]オブジェクトにprop2を追加 または別の方法があるのでしょうか。 ぜひぜひご回答のほどお願いいたします。

  • 配列を使って平均を求めるプログラムの異常 JavaScript

    配列を使って平均を求めるプログラムをJavaScriptで書いているのですが、 実行して得られる平均の値が異常です。(*具体的には後述します) 正しい書き方を教えていただけたら幸いです。 仕様は ・実行と同時にポップアップウインドウで、「生徒1~3」の点数を記入させる ・記入が終わると、ページに生徒の点数と、3人の平均点が表示される というものです。以下がソースです。 var array = new Array(3); var i; array[0] = prompt("生徒1の点数を入力してください。", ""); array[1] = prompt("生徒2の点数をを入力してください。", ""); array[2] = prompt("生徒3の点数を入力してください。", ""); for(i = 0; i < 3; i++){ document.write("生徒 ", i + 1 ); document.write(":", array[i], "<br>"); } var sum = array[0]; for(i = 0; i < 3; i++){ sum += array[i]; var mean = sum/3; } document.write("<hr>"); document.write("平均点: ", mean, "点", "<br>"); *平均値が異常というのは、例えば生徒1に10,生徒2に20,生徒3に30を入力した時の平均点が 3367343.3333333335になってしまう、というようなものです。 原因がわからず困り果てております。 どなたかご親切な方、よろしくお願いします。

  • Arrayオブジェクトとforms配列

    以下のスクリプトを実行すると、(2)の所で「document.forms.GetFromArray is not found」 のエラーとなります。(ブラウザはFirefox)。 意図としてはArrayオブジェクトをカスタマイズして追加したGetFromArray()メソッドでforms配列を操作したいのですが... エラーメッセージからすると、「document.formsは配列(Arrayオブジェクト)では無い」と言っているようです。 この方法でforms配列を参照する方法を教えて下さい。 あるいは、Arrayオブジェクトではない、他のオブジェクトをカスタマイズするのでしょうか?お願いします。 <html> <head> <script type="text/javascript"> <!-- Array.prototype.GetFromArray=function(func){ for(var i=0;i<this.length;i++){ func(this[i]); } } function disp1(h){ alert(h); } function disp2(h){ alert(h.name); } function run(){ var array=new Array('dog','cat','fish'); array.GetFromArray(disp1); //(1) OK document.forms.GetFromArray(disp2); //(2) エラー } //--> </script> </head> <body> <form name="test"> <input type="text" name="bunrui" value="分類">/ <input type="text" name="detail" value="詳細">/ <input type="button" value="実行" onClick="run();"> </form> </body> </html>

  • javascriptでhiddenに二次元配列を格納したい

    現在、Webのシステムでクライアント側のJavaScriptから サーバー側のPHPに値を渡そうと思ってます。 その際に、JavaScriptの配列と連想配列を組み合わせた二次元配列に 値を格納してサーバー側に渡そうと思ってます。 それで以下のような方法を試しているのですが、 hiddenに二次元配列を格納する方法が分からず困ってます。 分かる方がいらしたら教えて頂けますでしょうか。 よろしくお願いいたします。 =========================================== var actionName = document.forms[0].action; var bodyObj = document.body; var formObj = document.createElement("FORM"); var hiddenObj = document.createElement("HIDDEN"); formObj.name = "updateTest"; formObj.action = actionName; formObj.method = "post"; hiddenObj.name = "alltest[][]"; var norArr = new Array(); var hashArr = new Array(); var i = 1; hashArr['test'] = document.getElementById("test" + i).value; norArr[i-1] = hashArr; hiddenObj.value = hashArr; formObj.appendChild(hiddenObj); bobyObj.appendChild(formObj); formObj.submit();

専門家に質問してみよう