我正在尝试让jQuery根据两个值之间的属性值显示/隐藏元素。
我的标记看起来像这样:
<a class="page_link" href="javascript:go_to_page(0)" longdesc="0">1</a>
<a class="page_link" href="javascript:go_to_page(1)" longdesc="1">2</a>
<a class="page_link" href="javascript:go_to_page(2)" longdesc="2">3</a>
<a class="page_link" href="javascript:go_to_page(3)" longdesc="3">4</a>
<a class="page_link active_page" href="javascript:go_to_page(4)" longdesc="4">5</a>
<a class="page_link" href="javascript:go_to_page(5)" longdesc="5">6</a>
<a class="page_link" href="javascript:go_to_page(6)" longdesc="6">7</a>
<a class="page_link" href="javascript:go_to_page(7)" longdesc="7">8</a>
<a class="page_link" href="javascript:go_to_page(8)" longdesc="8">9</a>
我有一些看起来像这样的jQuery:
//Now, we need to paginate the pagination
var page_link_count = $('.page_link').length();
//Hide all the .page_links
$('.page_link').css('display','none');
//Show active_page
$('.active_page').css('display','block');
//Show up to four .page_link on either side of active_page
var active_page_value = $('.active_page').attr('longdesc');
$('.page_link').each(function(){
var longdesc = $(this).attr('longdesc');
// This next part might be what's getting me...
if( longdesc <= active_page_value+4 && longdesc >= active_page_value-4){
$(this).css('display','block');
}
});
我想说,如果具有page_link类的任何元素的longdesc属性值大于active_page longdesc - 4之和的值或者小于active_page longdesc + 4的总和
答案 0 :(得分:2)
在添加之前,您需要解析数字。将替换值
if( (longdesc <= parseInt(active_page_value ,10) +4)
&&( longdesc >= parseInt(active_page_value,10) -4))
<强> JS 强>
//Now, we need to paginate the pagination
var page_link_count = $('.page_link').length;
//Hide all the .page_links
$('.page_link').css('display','none');
//Show active_page
$('.active_page').css('display','block');
//Show up to four .page_link on either side of active_page
var active_page_value = $('.active_page').attr('longdesc');
var min = parseInt(active_page_value,10) - 4;
var max = parseInt(active_page_value,10) + 4;
$('.page_link').each(function(){
var longdesc = $(this).attr('longdesc');
if( longdesc <= max && longdesc >= min){
$(this).css('display','block');
}
});
答案 1 :(得分:0)
要改变两件事:
更改强>
var page_link_count = $('.page_link').length();
要强>
var page_link_count = $('.page_link').length;
和强>
var active_page_value = $('.active_page').attr('longdesc');
要强>
var active_page_value = +$('.active_page').attr('longdesc');
答案 2 :(得分:0)
过度复杂化......这就是你所需要的。
//Hide all the .page_links
$('.page_link').hide();
//Show active_page
$('.active_page').show();
//Show all links before active
$('a.active_page').show();
$('a.active_page').prevAll().show();
*注意:最后两个可以合并,但我不想让你迷惑。