簡體   English   中英

如何顯示/隱藏一定數量的div?

[英]How to show/hide a certain number of divs?

我在嘗試顯示/隱藏一定數量的div時遇到問題。 我創建了一個動態div,它將打印所有內容,但在第5個div之后隱藏任何內容。 然后,如果我單擊“加載更多”按鈕,它將全部顯示,而“顯示更少”,則僅顯示前五個div。 我試過了,但是沒用。 這是jsfiddle。

var vidThumbnail = "";
for(i = 0, i < 25, i++)
{
  vidThumbnail = '<div class="video-thumbnail">child ' + i + '</div>';

    // if the child elements reaches 5 thumbnails, hide the rest
  if($('.section.thumbnail .thumb > .video-thumbnail:gt(5)'))
  {
      $('.section.thumbnail .thumb').append(vidThumbnail).hide();
  }
  else 
  {
      $('.section.thumbnail .thumb').append(vidThumbnail).slice(0,5);
  }
}

$('#loadMore').click(function() // show them all
{
    $('.section.thumbnail .thumb').show();
});

$('#showLess').click(function() // hide all up to the first 5 thumbnails
{ 
    $('.section.thumbnail .thumb > .video-thumbnail').slice(0,5);
});

<section class="section thumbnail">
    <h1>Thumbnail Divs</h1>
    <div class="thumb"></div>
    <div id="loadMore">Load More</div>
    <div id="showLess">Show Less</div>
</section>

您原來的小提琴在for循環中使用逗號而不是分號,因此初始腳本失敗了-那么它產生的dom不是您的選擇器所期望的。

這是我解決問題的方法:

https://jsfiddle.net/9pcp72bk/3/

var vidThumbnail = "";

var hideAdditionalThumbs = function() {
    var elements = $('.section.thumbnail .thumb > .video-thumbnail');
    for (var i = 5; i < elements.length; i++) {
      $(elements[i]).hide();
    }
};

$('#loadMore').click(function() // show them all
  {
    $('.section.thumbnail .thumb .video-thumbnail').show();
  });

$('#showLess').click(hideAdditionalThumbs);

for (i = 0; i < 25; i++) {
  vidThumbnail = '<div class="video-thumbnail">child ' + i + '</div>';

    $('.section.thumbnail .thumb').append(vidThumbnail);
        hideAdditionalThumbs()
}

我對您的代碼進行了一些編輯,現在可以正常使用: https : //jsfiddle.net/IA7medd/hc5pL6ju/

var vidThumbnail = "";
for(i = 0; i < 25; i++)
{
  vidThumbnail = '<div class="video-thumbnail">child ' + i + '</div>';
  $('.section.thumbnail .thumb').append(vidThumbnail);

    // if the child elements reaches 5 thumbnails, hide the rest
  if(i>5) {
      $('.video-thumbnail').eq(i).hide();
  }
}

$('#loadMore').click(function() // show them all
{
    $('.video-thumbnail').show();
});

$('#showLess').click(function() // hide all up to the first 5 thumbnails
{ 
    for(i=5; i<25; i++){
        $('.video-thumbnail').eq(i).hide();
  }
});

暫無
暫無

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

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