js里面怎么使用两个按钮切换四个div的内容?

两个按钮,上一页下一页,我有四个DIV,点击一次显示一个内容其他隐藏,
<form>

<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>

</form>
<button>上一页</button>
<button>下一页</button>

阅读 6.8k
3 个回答

什么意思?比如当前在内容为1这个div,点击下一页显示内容为2的div,其余隐藏??

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <title>Document</title>
    <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
</head>
<style>
  form div{display:none;}
  form .current{display:block;}
</style>
<body>
  <form>
    <div class="current">1</div>
    <div>2</div>
    <div>3</div>
    <div>4</div>
  </form>
  <button onclick="prev();">上一页</button>
  <button onclick="next();">下一页</button>

<script>
function prev(){
  var index = $("form .current").index();
  if(index>0){
    $("form div").eq(index-1).addClass("current").siblings().removeClass("current");
  }
}

function next(){
  var len = $("form").children().length;
  var index = $("form .current").index();
  if(index<len-1){
    $("form div").eq(index+1).addClass("current").siblings().removeClass("current");
  }
}
</script>
</body>
</html>
  1. 你给没给div添加上id,比如div1,div2,div3,div4,并定义一个隐藏的css类名和相应配置,比如hiden
  2. 你用一个标志变量来记录当前该展示那一页,比如index,初始为1
  3. 然后你每次切换(按按钮)就处理index值,然后就可以查询到该显示的div的ID,把其中class属性去除上hiden,把上次没有hiden类的添加上即可。

看题主的代码,我理解为:题主想做一个通过点击按钮轮番切换 div 的功能。以下为实现代码,纯 js DOM 操作,没有使用 JQuery

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        div {
            height: 100px;
            width: 100px;
            float: left;
            display: none;
        }

        div:nth-child(1) {
            background-color:chocolate;
        }

        div:nth-child(2) {
            background-color:darkgoldenrod;
        }

        div:nth-child(3) {
            background-color:darkmagenta;
        }

        .active {
            display: block;
        }
    </style>
</head>
<body>
    <form id="box">
        <div class="active">1</div>
        <div>2</div>
        <div>3</div>
    </form>
    <button onclick="pre()">上一页</button>
    <button onclick="next()">下一页</button>
    <script>
        function next() {
            let divEl = document.getElementsByClassName('active')[0],
                nextEl = divEl.nextElementSibling;
                divEl.className = '';
            if (nextEl) {
                nextEl.className = 'active';
            } else {
                document.getElementById('box').firstElementChild.className = 'active';
            }
        }

        function pre() {
            let divEl = document.getElementsByClassName('active')[0],
                preEl = divEl.previousElementSibling;
                divEl.className = '';
            if (preEl) {
                preEl.className = 'active';
            } else {
                document.getElementById('box').lastElementChild.className = 'active';
            }
        }
    </script>
</body>
</html>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题