循环不会改变div中的内容

时间:2014-04-27 15:29:12

标签: javascript

这个循环应该每隔15秒递增一次变量x,并且根据x的值显示适当的内容,问题是x不会增加。

        var x = 1;

        function slider() { 

            if (x > 4) {
            x = 1;
            }

            if (x == 1) {
                document.writeln("<div id='picture_slider_info'><h3>Example one</h3></div>");
            } else if(x == 2) {
                document.writeln("<div id='picture_slider_info'><h3>Example two</h3></div>");
            } else if (x == 3) {
                document.writeln("<div id='picture_slider_info'><h3>Example three</h3></div>");
            } else {
                document.writeln("<div id='picture_slider_info'><h3>Example four</h3></div>");
            }

        x++

        }

        setInterval(slider(), 15000);

3 个答案:

答案 0 :(得分:0)

您没有递增变量x。

将您的代码更改为:

var x = 1;

function slider() { 
    x++; // x incremented.
    if (x > 4) {
    x = 1;
    }

    if (x == 1) {
        document.writeln("<div id='picture_slider_info'><h3>Example one</h3></div>");
    } else if(x == 2) {
        document.writeln("<div id='picture_slider_info'><h3>Example two</h3></div>");
    } else if (x == 3) {
        document.writeln("<div id='picture_slider_info'><h3>Example three</h3></div>");
    } else {
        document.writeln("<div id='picture_slider_info'><h3>Example four</h3></div>");
    }

}

setInterval(slider(), 15000);

答案 1 :(得分:0)

您不应该调用slider(),而是将函数作为参数传递给setInterval

setInterval(slider, 1500)

您目前正在将slider() undefined的返回结果传递给setInterval

答案 2 :(得分:0)

Nikola Dimitroff是对的。
我将此作为答案给你代码。

<html>
<head>
<script type="text/javascript">
var x = 1;
function slider() { 
  console.log(x);
  if (x > 4) { x = 1; }
  if (x == 1) { console.log("One"); }
  else if(x == 2) { console.log("Two"); }
  else if (x == 3) { console.log("Three"); }
  else { console.log("More"); }
  x++
  }
setInterval(slider, 1000);
</script>
</head>
<body>
</body>
</html>