WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:JSのelements[*]の使い方

0:[投稿] T.田中 [MAIL] [2002/09/19 05:03 ][環境:WIN+NN わからない]

いつもお世話になっています。
先日の「買い物オーダーフォームの…」の質問ではありがとうございました。ですが続きです。
elements[]を使い書き直してみたのですが、valueが同じ物は、for(…)を使い短縮できましたが、以下の場合は短縮可能でしょうか?

v = document.lista;
w = document.listb;

if(***){
    v.elements[0].value=w.elements[100].value;
    v.elements[1].value=w.elements[101].value;
    v.elements[2].value=w.elements[102].value;
}
else if(****){
    v.elements[3].value=w.elements[100].value;
    v.elements[4].value=w.elements[101].value;
    v.elements[5].value=w.elements[102].value;
}

if(&&&){
    v.elements[0].value=w.elements[103].value;
    v.elements[1].value=w.elements[104].value;
    v.elements[2].value=w.elements[105].value;
}
else if(&&&&){
    v.elements[3].value=w.elements[103].value;
    v.elements[4].value=w.elements[104].value;
    v.elements[5].value=w.elements[105].value;
}

お解りの方いらっしゃいましたら、お願いいたします。


1:[回答] andi [2002/09/19 10:48 ]

ソースの中に規則性があれば、工夫によりスクリプトを見易く出来ます。
試していませんが、多分こんな感じで出来るのでは無いでしょうか。
また、「***」「****」「&&&」「&&&&」にも規則性があれば、さらに工夫できるかもしれません。

v = document.lista.elements;
w = document.listb.elements;

if(***){
a = 0;b = 100;
}
else if(****){
a = 3;b = 100;
}

if(&&&){
a = 0; b = 103;
}
else if(&&&&){
a = 3; b = 103;
}

for(var i = 0;i < 3;i ++){
v[a+i].value=w[b+i].value;
}



2:[完了] T.田中 [2002/09/20 09:35 ]

andi様。ありがとうございます。
if(*){ のあとにこのように入れられるとは、式しか考えられなかったもので、目からうろこが落ちた思いです。
(***)や(&&&)にも規則性があったのですが、おかげさまでこっちも一気に解決しました。
つくづく自分の脳みその足りなさ加減を思い知りました。
本当にありがとうございます。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World