Jquery .index()虽然没有WAMP工作

时间:2013-09-19 17:40:24

标签: javascript jquery wamp mamp

我对.index()有一个非常奇怪的问题。我一直在当地建设一切,一切都很好。一旦我将代码放在WAMP / MAMP本地托管上,.index()计数就会停止正常工作。

var prodCont = $(".disaCats");

prodCont.each(function(){
//Checking too see how Many products the category has
var tempIndex = $(this).children(".cardContainer").index();

//If the there are more than 6 products show the dropdownArrow
if(tempIndex > 5){
      $(this).siblings(".disaHeading").children(".showMoreArrow").show();
});//end index calculation

我使用警报返回tempIndex,并为每个项目返回0.

我尝试过使用.index(this)和.children()而不使用类选择器,但是它做了同样的事情。我开始认为这是WAMP / MAMP的一个问题。

非常感谢任何帮助。

编辑:这个脚本通过localhost /在WAMP / MAMP上正常运行,但是一旦我尝试使用我的ip 521.xxx.xxx/共享它,这就是索引计数停止正常工作的时候。

3 个答案:

答案 0 :(得分:1)

查看index()的作用。 documentation says

  

如果没有向.index()方法传递参数,则返回值为   一个整数,表示第一个元素在其中的位置   jQuery对象相对于它的兄弟元素。

你不想索引!您想知道子元素的数量。为此,您需要使用.length

var tempIndex = $(this).children(".cardContainer").length;

答案 1 :(得分:1)

index()替换为length以获取集合中的元素数量:

//Checking too see how Many products the category has
var tempIndex = $(this).children(".cardContainer").length;

答案 2 :(得分:0)

这里似乎是一个逻辑问题,index为您提供了集合中元素的索引,但它的集合是子集的列表,因此该集合的第一个子集的索引始终是是0。如果对集合使用index,则默认行为是对第一个元素执行调用,这就是您始终获得0的原因。如果您实际上只想要孩子总数,那么我建议您使用length代替index