- PR -

javascriptの引数を可変にしたい

1
投稿者投稿内容
Orphan
ベテラン
会議室デビュー日: 2004/02/06
投稿数: 54
投稿日時: 2005-10-31 12:55
お世話になります。

function setA( kahen, a ) {
document.ZZZ.kahen.value = a;
}
上記のようなスクリプトで

引数のkahenにAAAを渡したときは
document.ZZZ.AAA.value = a;

BBBを渡したときは
document.ZZZ.BBB.value = a;

とすることはできますでしょうか?

[ メッセージ編集済み 編集者: Orphan 編集日時 2005-10-31 12:57 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-10-31 13:06
質問の意味はちょっと理解できませんでしたが、
可変の引数は、[functionName].arguments[n] で取り出すことが出来ます。

コード:


function setHage() {
for (var i = 0; i <= setHage.arguments.length - 1; i++) {
alert(setHage.arguments[i]);
}
}


# あ、可変って引数の数じゃなくて渡す型の話だったのですか... orz
# かつのりさんの投稿を拝見してから気付きました...

[ シグネチャを削除 ]

[ メッセージ編集済み 編集者: じゃんぬねっと 編集日時 2006-09-19 14:47 ]
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-10-31 13:06
コード:

function setA( kahen, a ) {
document.zzz.item(kahen).value = a;
}


これでいかがですか?

追記:
本当の質問の意味って、
「変数の値と同じ名前のフォーム内のエレメントを参照して、値を設定したい」
ということですよね?


[ メッセージ編集済み 編集者: かつのり 編集日時 2005-10-31 13:09 ]
でっち6号
大ベテラン
会議室デビュー日: 2005/01/31
投稿数: 176
お住まい・勤務地: Kawasaki
投稿日時: 2005-10-31 14:11
こんにちは、でっちです。

引用:

かつのりさんの書き込み (2005-10-31 13:06) より:
コード:
function setA( kahen, a ) { 
document.zzz.item(kahen).value = a; 
} 




IEだけならこれでOKですね。
マルチブラウザ対応が必要であれば、

コード:
function setA( kahen, a ) { 
    document.zzz.elements[kahen].value = a; 
}


になります。(引数"kahen"は文字列で渡して下さい)
getElementByIdとかでも良いですけど、テキストならこっちの方が記述が短いですね。
Orphan
ベテラン
会議室デビュー日: 2004/02/06
投稿数: 54
投稿日時: 2005-11-01 10:59
じゃんぬねっとさん、かつのりさん、でっち6号さん
皆さんありがとうございました。

棚から牡丹餅?で複数の引数を受け渡す方法も勉強できました!
ありがとうございました。
He
大ベテラン
会議室デビュー日: 2002/12/18
投稿数: 141
投稿日時: 2005-11-01 19:03
こんばんは。
既に解決されているようなので、蛇足になりますが一点。

JavaScriptでは、以下の2行は同等です。
コード:
document.ZZZ.AAA
document.ZZZ["AAA"]



だから、例えば↓のようなコードも正常に動作します。(これはただ読み辛いだけですが)
コード:
window.alert("TEST");
window["alert"]("TEST");


知っておいて損のないテクニックだと思うので、ご参考になれば。

私がいつも参考にしているDynamic Scriptingさんのプロパティアクセッサの項参照。
1

スキルアップ/キャリアアップ(JOB@IT)