addClass到特定元素

时间:2014-05-19 12:33:28

标签: jquery pagination element addclass

我的问题是因为我几乎不了解jQuery的任何内容,而且我在Bootstrap(http://www.bootply.com/xu9mT0pPA6)中使用脚本进行分页,我看到了我的理解,在这一行中$('.pager .page_link:first').addClass('active');活动的类被添加到之前的锚中,并且必须将其添加到li元素。

我尝试过$('.pager **li** .page_link:first').addClass('active');,但它不起作用。

非常感谢

编辑:代码:

var listElement = $('#pageStuff');
var perPage = 2; 
var numItems = listElement.children().size();
var numPages = Math.ceil(numItems/perPage);

$('.pager').data("curr",0);

var curr = 0;
**while(numPages > curr){
  $('<li><a href="#" class="page_link">'+(curr+1)+'</a></li>').appendTo('.pager');
  curr++;
}

$('.pager .page_link:first').addClass('active');**

listElement.children().css('display', 'none');
listElement.children().slice(0, perPage).css('display', 'block');

$('.pager li a').click(function(){
  var clickedPage = $(this).html().valueOf() - 1;
  goTo(clickedPage,perPage);
});

function previous(){
  var goToPage = parseInt($('.pager').data("curr")) - 1;
  if($('.active').prev('.page_link').length==true){
    goTo(goToPage);
  }
}

function next(){
  goToPage = parseInt($('.pager').data("curr")) + 1;
  if($('.active_page').next('.page_link').length==true){
    goTo(goToPage);
  }
}

function goTo(page){
  var startAt = page * perPage,
    endOn = startAt + perPage;

  listElement.children().css('display','none').slice(startAt, endOn).css('display','block');
  $('.pager').attr("curr",page);
}

2 个答案:

答案 0 :(得分:1)

由于li.page_link的父级,您可以使用.closest("li")

$('.pager .page_link:first').closest("li").addClass('active');

.parent()

$('.pager .page_link:first').parent().addClass('active');

修改

$('.pager li a').click(function(){
  var clickedPage = $(this).html().valueOf() - 1;

  $(".active").removeClass("active");
  $(this).closest("li").addClass("active"); 
  goTo(clickedPage,perPage);
});

答案 1 :(得分:1)

这个小小的片段会为点击的active添加<li>课程:

//when the anchor tag is clicked
$('a.page_link').click(function(){
  $('li').each(function(){
    //remove all li with class active (this is to remove the previous active)
    $(this).removeClass('active');
  });
  //add active to the parent of the clicked a tag
  $(this).parent().addClass('active');
});

<强> DEMO