function test_aa(){
var idName = test
var aa = 1
alert(Output_Length(idName,aa))
eval(Output_Length(idName,aa)) = "ほら"
}
function Output_Length(idName,aa){
switch (aa) {
case "1":
return "document.getElementById('"+idName+"')."+"value"
case "2":
return "document.getElementById('"+idName+"')."+"innerHTML"
default:
alert("1111111111")
}
}
Output_Lengthに渡している引数で、
idに返ってくる形式を設定したいのですが
どうしたらいいでしょうか?
いくつかミスが見受けられます。
注意点をコメントの部分に書きました。
<html> <head> </head> <body> <div id="test"></div> <script type="text/javascript"> <!-- //[[ 注意点 ]] // ■実行分の末尾には;をつけてください // ■switch文のcase節には、 一応最後にbreak; を入れます。 // (そうしないとそれより下のcaseに通り抜けたときに混乱します。) // ■文字列と数値の区別を行ってください。 // aa=2のように、を数値にしたなら、case 1 , case 2 になるべきで、 // aa="2"のように、文字列にしたなら、case "1" , case "2" になるべきです // // ■ id名は文字列なので、idNameのtestは"test"にしてください // ■ evalの戻り値は参照ではないので、代入の対象にはできません。 // evalに読み込ませる文字列文に、代入の左辺を加えて、evalする形なら可能です。 // function test_aa() { var idName = "test"; var aa = 2; str = Output_Length(idName,aa); str += "="; str += "\"ほら\""; alert(str); eval(str); } function Output_Length(idName,aa) { switch (aa) { case 1: return "document.getElementById('" +idName+ "')."+"value"; break; case 2: return "document.getElementById('"+idName+ "')."+"innerHTML"; break; default: alert("1111111111") } } // テスト test_aa(); //--> </script> </body> </html>
出来ました。ありがとうございます。
すいません。そこは自分の
ミスです。
return "document.getElementById('"+idName+"')."+"value"と
eval(Output_Length(idName,aa)) = "ほら"
ではだめで、
return "document.getElementById('"+idName+"')"と
eval(Output_Length(idName,aa)).value = "ほら"
なら動くんですよね。