0

ページのユーザーが表示するdivの1つだけを選択するか、すべてを選択するかを切り替えることができるように、dividの配列を作成しました。私のスクリプトを以下に示します。

<script type="text/javascript">
function switchdivs(theid){
var thearray= new Array("div1", "div2", "div3");
for(i=0; i<thearray.length; i++){
  if(thearray[i] == theid || theid == "all"){
        document.getElementById(thearray[i]).style.display="block";

  }else{
document.getElementById(thearray[i]).style.display="none";
  }
}
}
</script>

ページの更新後もユーザーの選択を維持したいと思います。この例をいくつか読んだことがあります。たとえば、ページのリロード時にJqueryの表示/非表示をリセットすることで理解が深まりましたが、それでも配列で機能させることができません。個々のIDごとにルールを設定する必要がありますか、それとも配列を使用したより洗練されたソリューションがありますか?私はこのようなことを試しましたが、おそらく私の貧弱なスクリプトからわかるように、私はjavascriptに非常に慣れておらず、かなり迷っています。

$(document).ready(function() {

if (sessionStorage['divselection']) {
if (sessionStorage['divselection'] === 'theid')
    $("#theid").show();
else
    $("#thearray[i]").hide();
}  

$("input[name='theid']").change(function() {
if( $("input[name='thearray[i]']:checked").val() == "theid")
{
    $("#thearray[i]").hide();
    $("#theid").show();
    sessionStorage['divselection'] = 'theid';
}
});

私を正しい方向に向ける手助けをしてくれてありがとう。

4

1 に答える 1

0

CSS クラス名の要点は、それらを要素のグループに適用できることです。したがって、個々の ID を追跡する代わりに、クラスを使用します。

また、要素の表示と非表示を切り替える代わりに、もう一度クラス名を使用しますが、クラス名を実際のスタイルに関連付けます。そのような:

.hideMe {
    display:none
}

...その後、すべての非表示/表示を行うクラス名を追加/削除できます。

于 2012-10-25T19:46:02.267 に答える