jquery - 显示数组中的某个元素?

标签 jquery html css arrays

我有一个显示特定元素的两列布局(例如左列的传记,右列的新闻)。我有一组数组中的元素。我想做的是单击一个按钮,第一列内容将分离并附加回隐藏元素,第二列移动到第一列,然后是数组中的下一个元素,将其自身附加到现在空的第二个专栏。

执行此操作的最佳方法是什么?我有一个关于分离/附加元素的想法,但我无法弄清楚我实际上是如何抓取数组中的下一个元素来显示它的?

这是 HTML 布局,我还附加了一个 JSFiddle 和所有代码,因为这里有很多代码。

<div class="container">
    <section class="main"></section>
</div>
<div class="view--wrapper">
    <div class="view">CONTENT</div>
    <div class="view">CONTENT</div>
    <div class="view">CONTENT</div>
    <div class="view">CONTENT</div>
</div>

https://jsfiddle.net/7fx5s8an/1/

最佳答案

我完成了你的“下一步”功能,如果你有任何问题,请发表评论。

var activeIndex = 0;
var totalSlides;
var viewArray;//declare viewarray here
var reset = function() {
  activeIndex = 0;
};

var init = function(totaSlides) {
  var obj = $(".view");
  viewArray = $.makeArray(obj);
  totalSlides = viewArray.length;
  console.log(totalSlides);
  console.log(viewArray);

  reset();

  $(".main").append(viewArray[0]);
  $(".main").append(viewArray[1]);
};  

$(document).ready(function(){
  init();

  $("#next").on("click", function(){
    activeIndex=activeIndex+1;//check this index he must be between 0 and totalSlides -1

    console.log(activeIndex);


    $(".main").html('');//i remove old viewArray

    //show two next item
    $(".main").append(viewArray[activeIndex]);
    $(".main").append(viewArray[activeIndex+1]);
  });
});

此外,您可以创建一个“显示”函数来显示正确的元素,“下一个”和“上一个”只是递增或递减“activeIndex”并检查该索引是否正确。

示例:

var activeIndex = 0;
var totalSlides;
var viewArray;
var reset = function() {
  activeIndex = 0;
};

var display = function() {
        $(".main").html('');

    $(".main").append(viewArray[activeIndex]);
    $(".main").append(viewArray[activeIndex+1]);
};

var init = function(totaSlides) {
  var obj = $(".view");
  viewArray = $.makeArray(obj);
  totalSlides = viewArray.length;
  console.log(totalSlides);
  console.log(viewArray);

  reset();

  $(".main").append(viewArray[0]);
  $(".main").append(viewArray[1]);
};  

$(document).ready(function(){
  init();

  $("#next").on("click", function(){
    activeIndex=activeIndex+1;

    if(activeIndex>totalSlides-2){
            activeIndex=totalSlides-2;
    }
    console.log(activeIndex);

    display();

  });

  $("#prev").on("click", function(){
    activeIndex=activeIndex-1;

    if(activeIndex<0){
            activeIndex=0;
    }
    console.log(activeIndex);

    display();

  });
});

关于jquery - 显示数组中的某个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36884967/

相关文章:

javascript - jQuery setInterval 不起作用

javascript - 执行二进制代码

javascript - 每个 div 的单独 jquery 操作

css - Google webfont Lato 100 和移动版 Safari

javascript - 如何从水平方向设置 html 的 Tab 键顺序?

javascript - 客户端图像分辨率/尺寸验证

javascript - 超链接在新文档窗口中返回 JSON。我希望它返回到像 "response"这样的变量

javascript - 使用 jquery 连接但它没有将 div 连接在一起?

jquery - 如何在 DIV 标签上使用 jquery 验证插件

html - 将桌面布局转换为单列移动布局