我想要这样的效果:单击按钮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>

解决方案 »

  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());