我的意思是我想使用for-loop或其他东西手动迭代。但我提出的这段代码似乎无法正常工作。我喜欢将javascript与jquery相结合,因为jquery不是我主要项目的一杯茶。我也不太了解jquery,我会说我开始学习了。你如何在jquery中迭代一个nodelist是我这次对所有jquery粉丝的问题。它是否类似于javascript方式?无论如何这就是我想出的(初学者的代码)。
这里的代码//无法正常工作
$(".sn").[0].fadeOut();
$(".sn").[0].fadeOut("slow");
$(".sn").[0].fadeOut(3000);
<div class="sn">
content
</div>
<div class="sn sn-2">
content
</div>
<div class="sn sn-3">
content
</div>
但是$(“。sn-2”)。fadeOut();像魅力一样工作。为什么呢?
答案 0 :(得分:0)
在你的代码中,你试图淡出.sn div三次。 尝试以下方法:
$.each($('.sn'), function(i, obj) {
$('.sn:eq(' + i + ')').fadeOut(3000);
});
这样你就可以迭代所有的.sn类元素,然后逐个淡化它们的索引(:eq(i))
答案 1 :(得分:0)
$('.sn').each(function(){
$(this).fadeOut('slow');
});
答案 2 :(得分:0)
也许你正在寻找这样的东西? 它会淡出循环中的每个sn元素。
我还更新了html以使其更加一致
for(var i=0; i < $(".sn").length; i+=1){
$(".sn-"+[i]).fadeOut(3000);
}
HTML
<div class="sn sn-0"> content </div>
<div class="sn sn-1"> content </div>
<div class="sn sn-2"> content </div>
此外,您需要知道,$(".sn")
表示一个对象,该对象没有您尝试使用代码($(".sn").[0]
访问的任何属性[0])
所以为了完成这项工作,您必须访问任何事件,例如这个$(&#34; .sn&#34;)[0]。
最佳
答案 3 :(得分:0)
试试这个
$(".sn:first").fadeOut();
答案 4 :(得分:0)
你也可以试试这个:
for(var i=0; i < $(".sn").length; i+=1){
$(".sn").eq(i).fadeOut(3000);
}