-1

我对 .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 的问题。

任何帮助深表感谢。

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

4

3 回答 3

1

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

//Checking too see how Many products the category has
var tempIndex = $(this).children(".cardContainer").length;
于 2013-09-19T17:42:59.563 回答
1

看看有什么index()作用。文档说:

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

你不想要索引!您想知道子元素的数量。为了得到它,你想使用.length

var tempIndex = $(this).children(".cardContainer").length;
于 2013-09-19T17:42:50.127 回答
0

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

于 2013-09-19T17:47:34.150 回答