使用 Jquery 让分页更漂亮
假设我的网站中有大量页面:
<div class="caja_paginas">
<ul class="paginas">
<li class="actual"><a href="/?tipo=links&que=ultimas&page=1">1</a></li>
<li><a href="/?tipo=links&que=ultimas&page=2">2</a></li>
<li><a href="/?tipo=links&que=ultimas&page=3">3</a></li>
<li><a href="/?tipo=links&que=ultimas&page=4">4</a></li>
<li><a href="/?tipo=links&que=ultimas&page=5">5</a></li>
<li><a href="/?tipo=links&que=ultimas&page=6">6</a></li>
<li><a href="/?tipo=links&que=ultimas&page=7">7</a></li>
<li><a href="/?tipo=links&que=ultimas&page=8">8</a></li>
<li><a href="/?tipo=links&que=ultimas&page=9">9</a></li>
<!-- commented but i have like 1420 pages lol -->
</ul>
</div>
我需要使其更漂亮(您可以查看 http:// /goo.gl/DO1do )
所以我在考虑做类似的事情:
$(document).ready(function(){
$('.caja_paginas ul.paginas li').hide();
$('.caja_paginas ul.paginas li.actual').show();
$('.caja_paginas ul.paginas li.actual').next('li').show();
$('.caja_paginas ul.paginas li.actual').prev('li').show();
$('.caja_paginas ul.paginas li').last().html('last').show();
});
这看起来像
[1][2][last] //当实际/当前是 [1]
或
[9][10][11][last] //当是[10]时;等等
但是我怎样才能让它看起来
[1][2][下一个][..][最后]
或
[上一个][..][9][10] [11][下一个][..][最后一个]
分别是?
或者也许你有更好的主意
-编辑-
我编辑了一些代码,使其看起来更好
$(document).ready(function ()
{
var actual = $(".caja_paginas ul.paginas li.actual a").text();
var actual_html = $(".caja_paginas ul.paginas li.actual").html();
var ultima = $(".caja_paginas ul.paginas li a").last().text();
var actual_html = $(".caja_paginas ul.paginas li.actual").last().html();
$(".caja_paginas #ellipsis").remove();
$(".caja_paginas ul.paginas li").hide();
$(".caja_paginas ul.paginas li.actual").show();
$(".caja_paginas ul.paginas li.actual").next("li").show().after('<li id="ellipsis">...</a></li>');
$(".caja_paginas ul.paginas li.actual").prev("li").show();
$(".caja_paginas ul.paginas li").first().show();
if (actual > 4)
{
$(".caja_paginas ul.paginas li").first().after('<li id="ellipsis">...</a></li>');
$(".caja_paginas ul.paginas").prepend("<li>" + $(".caja_paginas ul.paginas li.actual").prev().html() + "</li>");
$(".caja_paginas ul.paginas li a").first().text("<")
}
$(".caja_paginas ul.paginas li").last().show();
$(".caja_paginas ul.paginas").append("<li>" + $(".caja_paginas ul.paginas li.actual").next().html() + "</li>");
$(".caja_paginas ul.paginas li a").last().text(">")
});
并且可以在此处进行测试/修改: http://jsfiddle.net/q2WBG/1/
PD:对于 SEO 术语,我想保留 HTML 中页面的所有链接
Lets say there is a very large number of pages in my website:
<div class="caja_paginas">
<ul class="paginas">
<li class="actual"><a href="/?tipo=links&que=ultimas&page=1">1</a></li>
<li><a href="/?tipo=links&que=ultimas&page=2">2</a></li>
<li><a href="/?tipo=links&que=ultimas&page=3">3</a></li>
<li><a href="/?tipo=links&que=ultimas&page=4">4</a></li>
<li><a href="/?tipo=links&que=ultimas&page=5">5</a></li>
<li><a href="/?tipo=links&que=ultimas&page=6">6</a></li>
<li><a href="/?tipo=links&que=ultimas&page=7">7</a></li>
<li><a href="/?tipo=links&que=ultimas&page=8">8</a></li>
<li><a href="/?tipo=links&que=ultimas&page=9">9</a></li>
<!-- commented but i have like 1420 pages lol -->
</ul>
</div>
And i need to make it prettier (you can check at http://goo.gl/DO1do )
So i was thinking doing something like:
$(document).ready(function(){
$('.caja_paginas ul.paginas li').hide();
$('.caja_paginas ul.paginas li.actual').show();
$('.caja_paginas ul.paginas li.actual').next('li').show();
$('.caja_paginas ul.paginas li.actual').prev('li').show();
$('.caja_paginas ul.paginas li').last().html('last').show();
});
this would look like
[1][2][last] //when actual/current is [1]
or
[9][10][11][last] //when is [10]; and so on
But how can i make it look
[1][2][next][..][last]
or
[prev][..][9][10][11][next][..][last]
respectively?
or maybe you have a better idea
-edit-
I edited a bit the code so it looks better
$(document).ready(function ()
{
var actual = $(".caja_paginas ul.paginas li.actual a").text();
var actual_html = $(".caja_paginas ul.paginas li.actual").html();
var ultima = $(".caja_paginas ul.paginas li a").last().text();
var actual_html = $(".caja_paginas ul.paginas li.actual").last().html();
$(".caja_paginas #ellipsis").remove();
$(".caja_paginas ul.paginas li").hide();
$(".caja_paginas ul.paginas li.actual").show();
$(".caja_paginas ul.paginas li.actual").next("li").show().after('<li id="ellipsis">...</a></li>');
$(".caja_paginas ul.paginas li.actual").prev("li").show();
$(".caja_paginas ul.paginas li").first().show();
if (actual > 4)
{
$(".caja_paginas ul.paginas li").first().after('<li id="ellipsis">...</a></li>');
$(".caja_paginas ul.paginas").prepend("<li>" + $(".caja_paginas ul.paginas li.actual").prev().html() + "</li>");
$(".caja_paginas ul.paginas li a").first().text("<")
}
$(".caja_paginas ul.paginas li").last().show();
$(".caja_paginas ul.paginas").append("<li>" + $(".caja_paginas ul.paginas li.actual").next().html() + "</li>");
$(".caja_paginas ul.paginas li a").last().text(">")
});
And can be tested/modified here: http://jsfiddle.net/q2WBG/1/
PD: for SEO terms, i would like to keep alllinks to pages in the HTML
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
像这样的东西应该有效。
Something like this should work.