0

我正在学习 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 classfor each的计数li.dropfirst element。知道我做错了什么吗?PS我在整个网站上寻找帮助,但找不到我做错了什么。

谢谢

4

3 回答 3

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 发布的解决方案,但我不确定,所以我将把它们留给实现示例,并停止指出明显的错误。

于 2013-03-01T02:42:46.117 回答
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"); 
});

演示

于 2013-03-01T02:46:04.313 回答
0

这应该这样做。小提琴

$(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');
    })
});

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

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

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

于 2013-03-01T02:46:57.123 回答