使用tinySort限制子div?

时间:2015-05-23 21:28:40

标签: javascript jquery dom tinysort

我使用tinySort来过滤动态创建的子div,效果很好。但是,我还想限制儿童divs的数量。例如..只有前5个排序的div。

这是我用来排序的当前代码。

tinysort("#results > div", {
                    order: "desc",
                    attr: 'id'
    }); 

我想过使用像if (($this).children().length < 5)

这样的东西

但是,我不确定如何将其纳入tinySort,或者该功能是否已经存在?

感谢任何建议或帮助。

DOM结构:

<div id="results" class="results">
 <div id="205" class="results-section">
  <div class="details">
    <h2>115</h2>
     </div>
      <div id="time">
       <h3>7</h3>
   <small>minutes</small>
  </div>
 </div>
<div id="196" class="results-section">
  <div class="details">
    <h2>115</h2>
     </div>
      <div id="time">
       <h3>7</h3>
   <small>minutes</small>
  </div>
 </div>
<div id="180" class="results-section">
  <div class="details">
    <h2>115</h2>
     </div>
      <div id="time">
       <h3>7</h3>
   <small>minutes</small>
  </div>
 </div>
</div>

1 个答案:

答案 0 :(得分:1)

在我看来,你能做的最好的事情就是在排序后隐藏元素。像这样的东西

$('#results > div').tsort({
    order: "desc",
    attr: 'id'
}).filter(function (i, el) {
    return i > 4; // this way if the other elements need some other style
}).hide();

以下是 http://jsfiddle.net/dhirajbodicherla/9VT8g/23/

的示例

甚至更简单

$('#results > div').tsort({
    order: "desc",
    attr: 'id'
}).slice(5).hide(); // strictly hide rest except first 5

第二个演示 http://jsfiddle.net/dhirajbodicherla/9VT8g/24/