对于一个滑块项目,我想在克隆的div中找到一个子div,但它似乎不起作用:
<div class="slide">
<div class='slidecaption'><h2>Slide Number 1</h2></div>
<div class='slidetext'><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,</p></div>
</div>
<div class="slide">
<div class='slidecaption'><h2>Slide Number 2</h2></div>
<div class='slidetext'><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,</p></div>
</div>
<div class="slide">
<div class='slidecaption'><h2>Slide Number 3</h2></div>
<div class='slidetext'><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p></div>
</div>
现在Jquery代码是:
$(document).ready(function() {
var slides = $('.slide');
var firstclone = slides.eq(0).clone(true);
var lastclone = slides.eq(2).clone(true);
slides.wrapAll('<div id="slideswrapper"></div>');
firstclone.appendTo ("#slidesWrapper");
lastclone.prependTo ("#slidesWrapper");
var slidesNumber = slides.length;
console.log(slidesNumber); //===> this will give 3 NOT 5
console.log(slides); //===>this will give an object of only 3 divs
console.log('#slidesWrapper'.html); //=====> this will give undefined
});
调试代码不会显示代码中注释的预期结果。 现在,正如我从Jquery文档中所理解的那样,插入dom的任何克隆div都将成为dom的一部分,所以为什么我不能在这里得到它,我的意思是5张幻灯片或所需的html。
我想检索.slideText和.slideCaption内容来操作它们并添加一些效果。
答案 0 :(得分:2)
您需要重新选择元素。
当您致电var slides = $('.slide');
时,确实只有3张幻灯片。
但如果在插入元素后再次运行选择器(console.log($('.slide').length);
),则会按预期得到5。
此外,您的代码存在拼写错误,最重要的是:slidesWrapper
!= slideswrapper
。