• ベストアンサー

フラグに名前を付けるには?

spflagが0なら指定ID(i)のクラスaを除いてbを付加する、1なら逆のbを除いてaを付加するスクリプトの部分。 var spflag=0 function special(i,a,b){ if (spflag==0){ document.getElementById(i).className = document.getElementById(i).className.split(/\s+/).remove([a], ' '); document.getElementById(i).className = document.getElementById(i).className.split(/\s+/).merge([b], ' '); spflag=1;} else{ document.getElementById(i).className = document.getElementById(i).className.split(/\s+/).remove([b], ' '); document.getElementById(i).className = document.getElementById(i).className.split(/\s+/).merge([a], ' '); spflag=0;} } これのspflagにiの名前を(iはID)足してIDごとのフラグ管理を行いたいのですが、どのようにするのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.2

Javascriptの配列のキーは数値以外も扱うことができるので 配列で管理でいいかと思います。 var spflag = new Array();//配列として定義 function special内で値を入れる/参照する。 if(spflag[i]){  ~ trueの時の処理  spflag[i]=false; } else {  ~ falseの時の処理  spflag[i]=false; } ただし、値の設定前に参照するとfalseとして判定されるので あらかじめ初期化をするか、初期値falseとして動作するようにプログラミングする必要があります。

idhokanohi
質問者

お礼

回答ありがとうございます。 そういう方法もあるのですね。 ただ、先に回答いただいたtalooさんのような方法の方がスマートだと思いました。 私は最初 var spflag[i]=0 spflag[i]==1見たいな感じでvarの所がうまくいかなくてこの質問にいたったのでした。 でも、こちらの方もほかの場面で利用できそうなので、覚えておきます。 ありがとうございました。

その他の回答 (1)

回答No.1

> これのspflagにiの名前を(iはID)足してIDごとのフラグ管理を行いたいのですが、 よくわかりませんが、 spflag={}; として、spflag[i]ではダメでしょうか?

idhokanohi
質問者

お礼

ありがとうございます、こんな感じです! 初期値を0にはできませんでしょうか? 0にしなくても処理はできますが、もし方法があるなら知っておいた方がいいかな?と思いまして。