質問: JavaScriptの階層的なチェックボックスグループで、大項目を選択すると小項目も選択、小項目を解除すれば大項目も解除する方法を教えてください。大項目A~や小項目1~はDBから取得するため可変です。
回答: 要件がよくわからないから方向性だけ書くけど、 ・eval使ってるんだからそりゃ遅い。evalやめるだけでも結構違うんでないかい。document.forms[id].elements[name]のアクセスの仕方を使えば、evalなんて必要ない。省略形じゃない書き方をすべし。 ・俺ならfieldset要素にするが、divでもpでもいい、1つの大項目とぶらさがる小項目を何らかの要素でグループ化して、大項目に対応する小項目がどこまでなのかをまとめてしまえばいいんでない。そしたら違う大項目にぶらさがる小項目まで走査しなくていいでしょ。 ・大項目を変更したときの関数と小項目を変更したときの関数分けたら。無駄にif分岐することないよ。 ・iがグローバル変数であるということと、条件式で毎度lengthにアクセスするのがダメ。スナップショットを取って、その数値と比較するほうがいい。 思いつくのはこのくらいかな。