上一个-下一个动态内容显示与jquery


prev - next dynamic content display with jquery

我正在尝试在页面上的内容之间进行上一次滑动。我有以下标记:

<div class="right">
     <a href="javascript:;" class="light-button" id="previous-button">Previous</a>
     <a href="javascript:;" class="light-button" id="next-button">Next</a>
 </div>
 <?php foreach ($chapters as $chapter) : ?>
 <div id="chapters-container-<?php echo $chapter->id; ?>" style="display: none">
     <div class="left">
         <h1 class="hmc"><?php echo $chapter->title; ?></h1>
     </div>
     <ul class="attachments scroll-pane">
     <?php foreach ($chapter->files as $file) : ?>
     <!--video zone-->
         <?php if ($file->extension == '.mpeg') : ?>
         <li class="wide">
             <img src="" />
             <span class="duration hmc"><?php $file->duration; ?></span>
             <h1 class="hmc">The title is a title</h1>
         </li>
         <?php endif; ?>                              
     <?php endforeach; ?>
     </ul>
</div>
<?php endforeach; ?>
</div>

基本上,我使用PHP动态生成一些内容。我已经将生成的每个内容包装在div中,并且不会仅使用jQuery来显示它。现在我试着做一些类似的事情:


$('body').on('click', 'a#next-button', function(){
    $('#chapters-container-').next();
});

但是ofc并没有像我想要的那样工作。当我根据我生成的标记在上一个按钮和下一个按钮之间切换时,我该如何更改内容。

我认为你没有得到什么

$('#chapters-container-').next(); 

确实如此。根据文件,

获取匹配元素。如果提供了选择器,它将检索下一个仅当它与该选择器匹配时为同级。

所以你只是选择id=charges容器的元素之后的下一个元素-

你应该做这样的事情:

$('body').on('click', 'a#next-button', function(){ 
  var visisbleContainer = $('div[id^=chapters-container-]:visible');
  visisbleContainer.next().show();
  visisbleContainer.hide(); 
});

当用户点击下一个按钮时,得到可见的div(章节)id属性。您将收到一个章节id,将1添加到这个章节id中,并生成另一个字符串,如chapters-container-2。

现在隐藏当前div并显示生成字符串的div,即$('#'+newstring).show()