Javascript 调试JQuery脚本的帮助

Javascript 调试JQuery脚本的帮助,javascript,jquery,Javascript,Jquery,对于我第一次进入JQuery的一个项目,我有一个非常简单的目标,那就是逐步遍历div的子元素,并将它们逐一淡入淡出。但是出于某种原因,如果我手动为第n个子项定义索引,比如说1,那么第一个子项会淡入淡出四次。但是,如果我使用变量“I”,那么所有的孩子都会淡入淡出四次。为什么会这样 这是我的密码: <div id="slideshow"> <p>Text1</p> <p>Text2</p> <p>Test

对于我第一次进入JQuery的一个项目,我有一个非常简单的目标,那就是逐步遍历div的子元素,并将它们逐一淡入淡出。但是出于某种原因,如果我手动为第n个子项定义索引,比如说1,那么第一个子项会淡入淡出四次。但是,如果我使用变量“I”,那么所有的孩子都会淡入淡出四次。为什么会这样

这是我的密码:

<div id="slideshow">
    <p>Text1</p>
    <p>Text2</p>
    <p>Test3</p>
    <p>Text4</p>
</div>

<script>
$(document).ready(function() {
        var $elements = $('#slideshow').children();
        var len = $elements.length;
        var i = 1;
        for (i=1;i<=len;i++)
        {
            $("#slideshow p:nth-child(i)").fadeIn("slow").delay(800).fadeOut("slow");
        }
});
</script>

文本1

文本2

测试3

文本4

$(文档).ready(函数(){ var$elements=$(“#幻灯片放映”).children(); var len=$elements.length; var i=1;
对于(i=1;i我并不是说这是不可能的,但最终,即使你让它工作起来,使用它也是毫无意义的,因为它在IE上会失败

请参阅此处。

手动输入索引(1)时,循环4次,并在第一个子项中淡入4次。 当您使用i时,它们将全部消失四次,因为字符串中的i不是对i变量的引用,它只是字符串的一部分

$(document).ready(function() {
        var $elements = $('#slideshow').children();
        var len = $elements.length;
        var i = 1;
        for (i=1;i<=len;i++)
        {
            $("#slideshow p:nth-child("+i+")").fadeIn("slow").delay(800).fadeOut("slow");
        }
});

您需要转义
i
。现在,
n子项
正在查找索引为
i
、而不是
0
1
2
等的子项。因此,请使用:

$('#slideshow p:nth-child(' + i + ')').fadeIn('slow').delay(800).fadeOut('slow');
但是,我不认为这样一次只能做一件事;事实上,我很确定它不会。如果不行,请尝试以下方法:

var delay = 0;
$('#slideshow p').each(
    function (index, item)
    {
        $(this).delay(delay).fadeIn('slow').delay(800).fadeOut('slow');
        delay += 2200;
    }
);

这是未经测试的,但至少应该是相当不错的伪代码。

事实上,根据链接文章,由于OP使用的是jQuery,所以这不是问题。
一个可取之处是,如果您使用的是jQuery,它支持所有CSS选择器,包括:nth child,那么即使在Internet Explorer中,选择器也可以工作。
Sweet,gl广告很有效!我只是猜测事情会如我所愿。哈哈哈。不客气!
var delay = 0;
$('#slideshow p').each(
    function (index, item)
    {
        $(this).delay(delay).fadeIn('slow').delay(800).fadeOut('slow');
        delay += 2200;
    }
);