我对.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/共享它,这就是索引计数停止正常工作的时候。
答案 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
。