下記のソースがエラーになります。

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に返ってくる形式を設定したいのですが
どうしたらいいでしょうか?

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2007/05/16 17:22:41
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:GEN111 No.1

回答回数472ベストアンサー獲得回数58

ポイント10pt
var idName = test
      ↓
var idName = 'test'

とりあえずこれでは。

id:hopefully

すいません。そこは自分の

ミスです。

return "document.getElementById('"+idName+"')."+"value"と

eval(Output_Length(idName,aa)) = "ほら"

ではだめで、

return "document.getElementById('"+idName+"')"と

eval(Output_Length(idName,aa)).value = "ほら"

なら動くんですよね。

2007/05/16 16:52:49
id:jack_sonic No.2

回答回数124ベストアンサー獲得回数25

ポイント60pt

いくつかミスが見受けられます。

注意点をコメントの部分に書きました。

<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>
id:hopefully

出来ました。ありがとうございます。

2007/05/16 17:22:00

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません