- PR -

Javascriptでのオブジェクト名の変数化

投稿者投稿内容
あすか
ぬし
会議室デビュー日: 2006/07/12
投稿数: 309
投稿日時: 2006-11-01 15:14
引用:

冬さんの書き込み (2006-11-01 15:04) より:
間違いがありました。

チェックボックスの名前はCheck01〜20ではなくCheck1〜20でした。

あすか様が指摘されている
Ckeck + i
は名前がCheck01なのにCheck1と指定してはエラーが起こって当然
とのご指摘かと思われます。

申し訳ありません。



ご理解いただけたようなのでよかったです。
では回答へのHINTを
(ずばり回答してもいいのですけど)

document.form01("name")

これが分ればばっちり(・・)b
document.all
document.getElementById
でもいいですけどformが複数あるとダメなので


[ メッセージ編集済み 編集者: あすか 編集日時 2006-11-01 15:16 ]
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2006-11-01 15:37
コード:
function hoge(){
    var outcnt = 0;
    var chkname = "";

    for (var i = 1; i <= 5; i++) {
        chkname = "check" + i;
        if (document.form1(chkname).checked) {
            outcnt = outcnt + 1;
        }
    }
    alert(outcnt);
}


会議室デビュー日: 2006/10/05
投稿数: 7
投稿日時: 2006-11-01 15:37
じゃんぬねっと様
あすか様

ご回答ありがとうございます。
こんな書き方があったとは目から鱗でございます。
値もばっちり取れました。

自分で書いてても↓は動かないよな・・・と思っておりました。
document.form01.Ckeck + i + .checked
変数とオブジェクトを繋ぐと言うニュアンスをどうにかして伝えようと
つたない表現をしてしまいお恥ずかしい限りです。

また、ご回答頂いた方々にも大変感謝しております。
ありがとうございました。
冬寂
ぬし
会議室デビュー日: 2002/09/17
投稿数: 449
投稿日時: 2006-11-01 15:39
引用:

あすかさんの書き込み (2006-11-01 15:14) より:
document.all
document.getElementById
でもいいですけどformが複数あるとダメなので


idとnameが同じものが設定されている場合はいいけど、nameだけ設定されている場合はdocument.getElementByIdではうまく行かないと思います。
(念の為、IEで試した所、nameでも同時に検索するのか動作しました。Firefoxだとエラー)

上の例は、冗長に書くと、
コード:
document.forms["form1"].elements["Check" + i]


になるのかな?
会議室デビュー日: 2006/10/05
投稿数: 7
投稿日時: 2006-11-01 15:50
ひろれい様
冬寂様

ご回答ありがとうございました。

document.form01.Ckeck.checked と言う書き方に固執していたので
表現につまっておりました。
色々な書き方があるとわかり大変勉強になりました。

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