WEB相談室

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

タイトル:要素が一つのコレクションは取得可能ですか

teka [WriteDate : Wed May 23 16:07:03 2001]

コードかnameまたはidによって要素にアクセスする場合コレクションか要素のいずれかが返るのですが。そのたびに
if(null==document.all.xxx)
{
 xxxが一個の時の処理
}
else
{
xxxが複数の時の処理
}
としているのですがプログラムが倍必要です。
そこで質問です。

1 要素一個のコレクションを取得する方法はあるのでしょうか。
2 このように要素の数が不明の時はみなさまはどのようにしているのですか


Nobu3 [URL] [WriteDate : Wed May 23 16:20:09 2001]

idの重複は禁止。のはず。


その要素を別の配列にいれてしまう。とか。
ダミーを用意して「必ず2つ以上ある」ようにする。とか。
要素の1つを処理するサブルーチンを作れば、重複コードが減る。とか。


teka [WriteDate : Wed May 23 16:59:31 2001]

なるほどダミーが良さそうですね。ありがとうございました。
ところで先ほどのプログラムにバグがありましたので訂正します。
if(null==document.all.xxx)でなくて
if(null==document.all.xxx.length)ですね。
ところで話は変わるのですが私の場合ここの要素の配列にたいしてidだとアクセスできるのですがnameだとアクセスできません。

a=document.all.xxx
a[i].className = "hogehoge"
の時

id = xxx の時はアクセスが可能なのですが
name = xxx の時はアクセスができません(困っています)
仕方がなく技術的には意味がないとされているのを知っていながら使っています。ソースを見られると恥ずかしいです・・・。


Nobu3 [URL] [WriteDate : Wed May 23 17:07:42 2001]

ちなみに、私の場合は
>その要素を別の配列にいれてしまう。とか。
を採用しています。
以前はidを使っていましたけど、「重複禁止」を知ってからはclassを使うようにしています。

for(i=0;i<document.all.length;i++){
    if(document.all[i].className=='new')ups[cnt++]=document.all[i];
}

無駄な事をしてるようにも思いますが(笑)


teka [WriteDate : Thu May 24 14:03:33 2001]

なるほど・・・。
私は重複については開き直ることにしました(^_^;)。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]
ChaichanPAPA's World