在Jquery中计算div的分页

时间:2010-05-17 12:53:17

标签: jquery count pagination html

我想在Jquery中为我拥有的一些div创建一个很好的分页。 EG:

<div class="container">  
    <div id="one">content</div>  
    <div id="two">content</div>  
    <div id="three">content</div>  
    <div id="four">content</div>  
</div> 

这个数字并不总是一样的,所以我需要计算div,并显示如下所示的分页。

1|2|3|4

单击页码将显示相关的div。我知道如何使用Jquery和css显示和隐藏元素,并且已经知道我可以使用

来计算div

var numPages = $('.container').size();

但我无法弄清楚如何显示分页。

任何指针?

3 个答案:

答案 0 :(得分:1)

这样的事情:

// Get all immediate child divs and their count
var $divs = $('div.container > div');
var pages = $divs.length;

// Hide every one but the first
$divs.not(':first').hide();

// Create a container for the pagination
$ul = $('<ul />');

// Create links for pagination inside the ul
for(var i = 0; i < pages; i++) {
    $ul.append($('<li><a href="#" class="pagination" rel="'+i+'">'+i+'</a></li>'));
}

// Insert the pagination container
$('div.container').before($ul);

// Behaviour for clicking the links inside pagination container
$ul.find('a.pagination').click(function() {
    // Get the index from current element's rel attribute
    var index = parseInt($(this).attr('rel'), 10);
    // Hide every div and show the div at the current index's location
    $divs.hide().eq(index).show();
    return false;
});

没有测试过,但它应该给你初学者。基本上它只是创建一个ul元素来控制显示哪些div。

答案 1 :(得分:0)

使用.addClass()和.removeClass - 只需在显示的第一个页面(div)和隐藏的所有其他页面上放置一个类,然后交换它们(通过添加隐藏类并删除隐藏一个具有当前可见性的类) show类,以及您希望通过添加/删除CSS类来显示的新页面的反转。

答案 2 :(得分:0)

这个怎么样?

    // Opens a certain div in the .container
    function openUpPage(id) {
        $('.container div').hide(); // hide all divs in container
        $('#'+id).show(); // show only this one
    }

    // Gets called on document load
    $(function() {
        var i = 0;
        $('.container div').each(function (){
            i++;
            $(this).hide(); // hide
            $('#paginator').append("<a href=\"javascript: openUpPage('"+$(this).attr('id')+"')\">"+i+"</a>|");
        });

    });

注意将此添加到您的HTML应该分页:

<div id="paginator">  </div>

否则,有很多插件可以为您执行此操作(例如使用tablesorter.paginated的tablesorter),或者您可以使用jQuery UI选项卡。祝你好运!