簡體   English   中英

如何排除 <TR> jQuery的表格?

[英]How exclude <TR> table with jQuery?

我用jQuery開發了一個分頁表,一切正常

但我有一個問題,我的桌子上有一些TR,我不需要計算它們

我在肢體表中使用ID

jQuery代碼

 $.fn.pageMe = function(opts) { var $this = this, defaults = { perPage: 7, showPrevNext: false, hidePageNumbers: false }, settings = $.extend(defaults, opts); var listElement = $this; var perPage = settings.perPage; var children = listElement.children(); var pager = $('.pager'); if (typeof settings.childSelector != "undefined") { children = listElement.find(settings.childSelector); } if (typeof settings.pagerSelector != "undefined") { pager = $(settings.pagerSelector); } var numItems = children.size(); var numPages = Math.ceil(numItems / perPage); pager.data("curr", 0); if (settings.showPrevNext) { $('<li><a href="#" class="prev_link">«</a></li>').appendTo(pager); } var curr = 0; // Added class and id in li start while (numPages > curr && (settings.hidePageNumbers == false)) { $('<li id="pg' + (curr + 1) + '" class="pg"><a href="#" class="page_link">' + (curr + 1) + '</a></li>').appendTo(pager); curr++; } // Added class and id in li end if (settings.showPrevNext) { $('<li><a href="#" class="next_link">»</a></li>').appendTo(pager); } pager.find('.page_link:first').addClass('active'); pager.find('.prev_link').hide(); if (numPages <= 1) { pager.find('.next_link').hide(); } pager.children().eq(1).addClass("active"); children.hide(); children.slice(0, perPage).show(); if (numPages > 3) { $('.pg').hide(); $('#pg1,#pg2,#pg3').show(); $("#pg3").after($("<li class='ell'>").html("<span>...</span>")); } pager.find('li .page_link').click(function() { var clickedPage = $(this).html().valueOf() - 1; goTo(clickedPage, perPage); return false; }); pager.find('li .prev_link').click(function() { previous(); return false; }); pager.find('li .next_link').click(function() { next(); return false; }); function previous() { var goToPage = parseInt(pager.data("curr")) - 1; goTo(goToPage); } function next() { goToPage = parseInt(pager.data("curr")) + 1; goTo(goToPage); } function goTo(page) { var startAt = page * perPage, endOn = startAt + perPage; // Added few lines from here start $('.pg').hide(); $(".ell").remove(); var prevpg = $("#pg" + page).show(); var currpg = $("#pg" + (page + 1)).show(); var nextpg = $("#pg" + (page + 2)).show(); if (prevpg.length == 0) nextpg = $("#pg" + (page + 3)).show(); if (prevpg.length == 1 && nextpg.length == 0) { prevpg = $("#pg" + (page - 1)).show(); } if (curr > 3) { if (page > 1) prevpg.before($("<li class='ell'>").html("<span>...</span>")); if (page < curr - 2) nextpg.after($("<li class='ell'>").html("<span>...</span>")); } currpg.addClass("active").siblings().removeClass("active"); // Added few lines till here end children.css('display', 'none').slice(startAt, endOn).show(); if (page >= 1) { pager.find('.prev_link').show(); } else { pager.find('.prev_link').hide(); } if (page < (numPages - 1)) { pager.find('.next_link').show(); } else { pager.find('.next_link').hide(); } pager.data("curr", page); } }; $(document).ready(function() { $('#myTable').pageMe({ pagerSelector: '#myPager', showPrevNext: true, hidePageNumbers: false, perPage: 2 }); }); 

因此,使用此代碼將表中的所有<tr>都占用了,但是我需要排除一些tr怎么辦?

我嘗試將ID賦予所需的TR,但沒有結果

假設這是您的表:

<table id='myPager'>
  <tbody>
    <tr><td>row 1</td></td>
    <tr><td>row 2</td></td>
  </tbody>
</table>

並且您的代碼可以:

$(opts.pagerSelector).find("tbody>tr").slice(1, 10).hide();

然后,將一個類添加到要排除的行中,此處將使用“已排除”,但您可能希望將其添加為一個選項:

<table id='myPager'>
  <tbody>
    <tr><td>row 1</td></td>
    <tr><td class='excluded'>row 2</td></td>
  </tbody>
</table>

然后檢查該類:

$(opts.pagerSelector).find("tbody>tr:not(.excluded)").slice(1, 10).hide();

更新:從問題的其他詳細信息中:

更改

var children = listElement.children();

var children = listElement.children().not(".excluded");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM