0

主に次のようなフォームである巨大な HTML ページがあります。

<FIELDSET id= '1'>
<TABLE>
  <TR> </TR>
</FIELDSET>
</TABLE>
   .
   .
   .
<FIELDSET id= 'n'>
<TABLE>
  <TR> </TR>
</TABLE>

フィールドセットの数は、サーバー上で動的に生成されます。

質問: クライアント側で、この巨大なページのページネーションを行いたいので、クライアントのページごとに 3 つのフィールドセットのみが表示されるようにします。ページの読み込み方法や現在のフォームの送信方法を変更したくありません。

4

2 に答える 2

1

まあ、あなたが使うかもしれないちょっとしたヒント

$('fieldset')
document.querySelectorAll('fieldset')

フィールドを返します

表示のみを取得するために i .. i+3 フィールドセットを使用できます

var i = 3

$('fieldset').hide().each(function ( index, el) {
   if (index >= i && index < i+3) $(el).show() 
})


var fieldsets = [].slice(document.querySelectorAll('fieldset'))


for (var index in fieldsets) {
    var display = index < i && index >= i+3 ? 'none' : ''
    fieldsets[index].style.display = display
}
于 2013-05-17T14:58:01.897 に答える
0

ページネーションは、クライアント側で行う場合、視覚的以外の方法では実際には役に立ちません (速度の向上、負荷の削減などはありません) が、それが必要な場合は、DOM 操作で行うことができます。次のようなものがうまくいくかもしれません:

    var i=0,sets=document.getElementsByTagName('fieldset'),len=sets.length;
    for(;i<len;i+=3) {
        // wrap sets[i] through sets[i+2], as long as they exist, in a div
        // if i !== 0, hide or minimize the div
    }
    // add controls to unhide/unminimize each div
于 2013-05-17T14:57:24.503 に答える