jquery如何让原始div:eq(0)的内部html参与内容变换轮转?

时间:2022-01-11 15:23:59
我想要这样的效果:单击按钮1次和单击第2次, div:eq(0)的内容变为 div.replace里面的2个div内容,单击第三次又变回原来div:eq(0)的内容,即“1111”。但我只能想出单击前2次的代码, 还原点击写不出来(我不想用再添加div容器来储存原div:eq(0)的内容)。而且chage()函数出错了,不知道为什么。请问高手们该怎么写?

<body>
<script type="text/javascript" src="http://localhost/leb/auto/js/jquery-latest.js"></script>
<script type="text/javascript">
var i=0; q=$(".replace>div").length;
function change(){
$("body>div:eq(0)").html()=$(".replace>div:eq("+i+")").html(); // 这一步出错,但为什么出错?
i=(i+1)%q;
}
</script>
<div>1111</div>
<div class="replace">
<div>the content is changed 1</div>
<div>the content is changed 2</div>
</div>
<button onclick="change()">change it</button>
</body>

5 个解决方案

#1



   var i = 0;
        var buf;
       function change(){
          q=$(".replace>div").length;

          if(i<q){
              if(!buf){
                  buf =  $("body>div:eq(0)").html();
              }
              $("body>div:eq(0)").html($(".replace>div:eq("+i+")").html()); // 这一步出错,但为什么出错?
              i++;
          }else{
               $("body>div:eq(0)").html(buf);
              i = 0;
              buf = null;
          }

       }
       

#2



$("body>div:eq(0)").html()=$(".replace>div:eq("+i+")").html(); // 这一步出错,但为什么出错?


具体看jquery的API  html() html(val) 

#3


谢谢eugenepada哥,你的代码很好用!

#4



  var i = 0;
        function change() {
            q = $(".replace>div").length;
            $("body div:eq(1)").html($(".replace>div:eq("+i+")").html()); 
            i=(i+1)%q;
        }

最好是给那个要赋值的div加上一个id

#5


$("body>div:eq(0)").html($(".replace>div:eq("+i+")").html());

#1



   var i = 0;
        var buf;
       function change(){
          q=$(".replace>div").length;

          if(i<q){
              if(!buf){
                  buf =  $("body>div:eq(0)").html();
              }
              $("body>div:eq(0)").html($(".replace>div:eq("+i+")").html()); // 这一步出错,但为什么出错?
              i++;
          }else{
               $("body>div:eq(0)").html(buf);
              i = 0;
              buf = null;
          }

       }
       

#2



$("body>div:eq(0)").html()=$(".replace>div:eq("+i+")").html(); // 这一步出错,但为什么出错?


具体看jquery的API  html() html(val) 

#3


谢谢eugenepada哥,你的代码很好用!

#4



  var i = 0;
        function change() {
            q = $(".replace>div").length;
            $("body div:eq(1)").html($(".replace>div:eq("+i+")").html()); 
            i=(i+1)%q;
        }

最好是给那个要赋值的div加上一个id

#5


$("body>div:eq(0)").html($(".replace>div:eq("+i+")").html());