jquery fadeOut不工作 - 更新

时间:2014-02-18 09:25:35

标签: javascript jquery

我的意思是我想使用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();像魅力一样工作。为什么呢?

5 个答案:

答案 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);
   }