質問: 0; function draw() { $('#page').html(page + 1); $('li.pg').hide(); $('li.pg:first,li.pg:gt(' + page * 18 + '):lt(18)').show(); } $('#prev').click(function() { if (page > 0) { page--; draw(); } }); $('#next').click(function() { if (page < ($('li.pg').size() - 1) / 18 - 1) { page++; draw(); } }); draw(); }); ```
回答: 拝見した感じ、``の様な項目の並ぶリストがあり、 `#prev`と`#next`をクリックする事で、18件ずつ表示する様なコードでしょうか。 `draw();`から都度`function draw(){}`を読み込んで、 表示している項目を切り替えている様です。 まず、以下の部分で今開いているページ数を`#page`に保存しています。 `page`が0から始まる様なので、ユーザーに分かりやすい様に+1をしています。 ``` $('#page').html(page + 1); ``` 次に、以下の部分で一旦すべての``を非表示にしています。 ``` $('li.pg').hide(); ``` そして、以下の部分で表示すべき``のみを表示している様です。 ``` $('li.pg:first,li.pg:gt(' + page * 18 + '):lt(18)').show(); ``` ただ、最後の部分について、今の情報だけでは内容が良く分かりませんでした。 表示される内容を箇条書きにすると、 * 一番初めの`` * 今のページ数×18個目以降かつ、18個目以前の`` を表示している様ですが、これでは今のページ数が0でなければ、 一番初めの``しか表示されない様な......。 差し支えなければ、どの様な処理を目標とされているかという点と、 HTML側のコードもご提示頂くと、より具体的に回答できるかと思います。