用于循环的jQuery

时间:2013-03-01 02:40:12

标签: jquery

我正在学习jQuery,需要一些帮助来循环并在类中添加1。

到目前为止,我有这个。

var $$ = jQuery;
$$(document).ready(function() {
var i = 1;
for (i < .dropdown_2columns ul li.drop) {
$$(".dropdown_2columns ul li.drop").addClass("dropfirst-" + i);
$$(".dropdown_2columns ul li .dropdown_2columns").addClass("tier3");
$$(".dropdown_2columns ul li .tier3").removeClass("dropdown_2columns");
$$(".dropdown_2columns .col_2 ul").addClass("firstsub");
$$(".dropdown_2columns .col_2:last-child").addClass("hide"); 
i++;
})
});

HTML

<div class="dropdown_2columns">
<div class="col_2">
<ul class="firstsub">
<li class="drop dropfirst"></li>
<li class="drop dropfirst"></li>
<li class="drop dropfirst"></li>
<li class="drop dropfirst"></li>
<li class="drop dropfirst"></li>
<li class="drop dropfirst"></li>
<li class="drop dropfirst"></li>
</ul>
</div>

我想为每个dropfirst class增加li.dropfirst element的计数。知道我做错了什么吗?附:我在整个网站上寻求帮助,但找不到我做错了什么。

由于

3 个答案:

答案 0 :(得分:1)

这不是一个有效的陈述:

for (i < .dropdown_2columns ul li.drop)

应该是这样的:

for (var i=1; i < $('.dropdown_2columns ul li.drop').length; i++)

另外使用这种语法,i将为您递增,因此没有理由在循环中执行i++并且在创建循环的过程中定义了i

没有$$这样的东西,除非你在一些你没有发布的代码中创建了这个函数或别名。

现在已经说了所有这一切,并不是100%清楚你要从代码中做什么。我怀疑你想要做的是类似于Jonathan和ComputerArts发布的解决方案,但我不确定,所以我将它们留给实现示例,只是停下来指出明显的错误。

答案 1 :(得分:0)

改为使用

$('.dropdown_2columns ul li.drop').each(function(i,v){
  $(".dropdown_2columns ul li.drop").addClass("dropfirst-" + i);
  $(".dropdown_2columns ul li .dropdown_2columns").addClass("tier3");
  $(".dropdown_2columns ul li .tier3").removeClass("dropdown_2columns");
  $(".dropdown_2columns .col_2 ul").addClass("firstsub");
  $(".dropdown_2columns .col_2:last-child").addClass("hide"); 
});

demo

答案 2 :(得分:0)

这应该这样做。 FIDDLE

$(document).ready(function () {
    $('.dropdown_2columns').each(function (i) {
        $(this).find('ul li.drop').addClass('dropfirst-' + i);
        $(this).find('ul li .dropdown_2columns').addClass('tier3').removeClass('dropdown_2columns'); //there are no elements like this in your HTML
        $(this).find('.col_2 ul').addClass('firstsub');
        $(this).find('.col_2:last-child').addClass('hide');
    })
});

使用.each()创建一个循环。您可以将参数传递给函数...在这种情况下,“i”是一个计数器。

$(this)引用.dropdown_2colums元素,然后找到要操作的子元素。

你的子弹是嵌套的...我想你忘了关闭它们<li></li>