0

对于滑块项目,我想在克隆的 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 内容来操作它们并添加一些效果。

4

1 回答 1

2

您需要重新选择元素。

在您打电话var slides = $('.slide');时,确实只有 3 张幻灯片。

但是,如果您在插入元素后再次运行选择器 ( console.log($('.slide').length);),您将按预期得到 5。

此外,您的代码有拼写错误,最重要的是:slidesWrapper!= slideswrapper

于 2013-03-14T01:19:52.700 回答