为什么我的imageIndex会一直返回-1;
$(function(){
//rotateImages();
setInterval("rotateImages()", 4000);
});
var imageIndex = 0;
var currentPhoto = $("#photoShow div.current");
function rotateImages(){
var max = $("#photoShow div").length;
imageIndex = currentPhoto.index();
console.log(imageIndex + " :: "+ (max - 1));
}
HTML:
<body>
<div id="photoShow">
<div class="current">
<img src="images/Grass.jpg" alt="Photo Gallery" width="400" height="400" class="gallery" />
</div>
<div>
<img src="images/Leaf.jpg" alt="Photo Gallery" width="400" height="400" class="gallery" />
</div>
<div>
<img src="images/Spring.jpg" alt="Photo Gallery" width="400" height="400" class="gallery" />
</div>
<div>
<img src="images/Water.jpg" alt="Photo Gallery" width="400" height="400" class="gallery" />
</div>
</div>
答案 0 :(得分:3)
$。如果找不到元素,index()返回-1。
基于上面的源代码,看起来你没有等到DOM准备就绪才宣布currentPhoto ...所以当定义变量时,DOM中的元素可能还不存在。< / p>
只需将所有内容移动到$(function(){...})即可获得您期望的结果。
$(function(){
//rotateImages();
setInterval("rotateImages()", 4000);
var imageIndex = 0;
var currentPhoto = $("#photoShow div.current");
function rotateImages(){
var max = $("#photoShow div").length;
imageIndex = currentPhoto.index();
console.log(imageIndex + " :: "+ (max - 1));
}
});
答案 1 :(得分:1)
尝试:
imageIndex = $('#photoShow').index('.current');
答案 2 :(得分:0)
此声明var currentPhoto = $("#photoShow div.current");
的长度为1,因为您的代码只有一个<div class="current">
imageIndex = currentPhoto.index();
应该返回0。在控制台日志中0 - 1 = -1
是输出
编辑:
对不起,你正在做var max = $("#photoShow div").length;
和max - 1. imageIndex应为零:-(