setInterval()为什么只执行一次

<html>
<head>
<script src="jquerylayout.js" type="text/javascript"></script>
<style>
.div01{height:2000px;}
.div01 div{width:100px;height:1600px;border:2px solid #f00;position:absolute;left:100px;top:100px;overflow:hidden;}
img{position:relative;display:none;}
</style>
<script>
var x=0;
$(function(){
//var node=document.getElementById("div02").children;
var node1=$("#div02").children();
//$("body").append(node[0]);
//$("body").append(node1[1]);
alert(node1.nodeName);
setInterval(abc(),2000);
function abc()
{
for(var i=0;i<node1.length;i++){
alert(x+"<br>"+i+node1.length);
if(i!=x)
{alert(x);}
else
{alert(x);}
}
x=x+1;alert(x);
}
})
</script>
</head>
<body>
<div class="div01">
<div id="div02"><img src="img01.jpg"><img src="img02.jpg"></img></div>
</div>
</body>
</html>

第1个回答  2016-07-25
只需要写abc,不需要写abc().后面的括号不需要。如果要加括号,需要加上引号'abc()'
第2个回答  2015-12-07
setInterval("abc()",2000);

函数用引号引起来,第一个参数是间隔时间执行的代码片段。追问

加引号我的浏览器不执行

追答

把函数拿到外面去,jquery的回调外面去

<script>
var x=0;
function abc(){   for(var i=0;i<node1.length;i++){        alert(x+"<br>"+i+node1.length);if(i!=x){alert(x);}else{alert(x);}}x=x+1;alert(x);}
$(function(){//var node=document.getElementById("div02").children;var node1=$("#div02").children();//$("body").append(node[0]);//$("body").append(node1[1]);alert(node1.nodeName);setInterval(abc(),2000);})</script>

追问

试了,不好使,你先试试能不能运行

追答

把函数拿到外面去,jquery的回调外面去

var x=0;
function abc(){
for(var i=0;i"+i+node1.length);
if(i!=x){
alert(x);
}else{
alert(x);
}
}
x=x+1;alert(x);
}
$(function(){
//var node=document.getElementById("div02").children;
var node1=$("#div02").children();
//$("body").append(node[0]);
//$("body").append(node1[1]);
alert(node1.nodeName);
setInterval("abc()",2000);
})

追问

我已经找你的改了,没用

追答

我给你的 只是表示调用的方式应该是那样的, 你这里还有变量的问题,node1的定义和赋值拿到函数里面,你自己调下就行了。话说你调试js都不开调试器的吗?

追问

node1我放进去了,还是不好使啊,变量怎么整,不会用浏览器调js

相似回答