Skip to content

JSでオブジェクトの指定に変数を使う。

最近JavaScriptを初めて思ったのが、同じ動作をするのにいろんな書き方があるなーってことだ。当たり前と言えば当たり前??

例えば、オブジェクトを操作するのにgetElementByIdを使ったり、formとして操作したり。。。
使い分けの仕方がよくわからない。。。
内部的な構造に違いがあるのかもしれないけどw

本題に入るとJSのオブジェクトを指定するのに変数名を使いたいということ。
例えば、関数でオブジェクト名を変数を使用して処理したいときに必要になる。

1つだと普通に
”document.form名.オブジェクト名.プロパティ” でアクセスできる。

しかし、関数に引数として、変数を使用するときは少し工夫が必要になる。
このように
“document.form名.変数名(オブジェクト名).プロパティ”
変数名をそのままオブジェクト名の指定に使用することはできない。
また
“document.form名.”文字列”.プロパティ”
のようにダブルクォーテーションで囲ってもうまくいかない。

そういう場合はこの書き方をすればいい。
“document.form名[変数名].プロパティ”

<html>
<head>
  <script type="text/javascript">
    
    double_of("txt1");/* txt1の値を2倍にして表示*/
    double_of("txt2");/*文字列を引数として指定する*/
    double_of("txt2");    

    /*値を2倍にする関数*/
    function double_of(txt_name){
      var result = document.form1[txt_name].value * 2;
      /*   ・・・= document.form1."txt_name".value * 2 <- このように""ではくくれない 
       ・・・= document.form1.txt_name.value <-変数名をそのまま入れることはできない*/
      document.write(result);
    }
  </script>
</head>
<body>
  <form name="form1">
    <input type = "text" name = "txt1" value = 5>
    <input type = "text" name = "txt2" value = 4>
    <input type = "text" name = "txt3" value = 7>
  </form>
</body>
</html>

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です