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