0

スライド ショーを実装しようとしています。次のコードを書きましたが、反復できる DOM 要素の代わりにこの行$('#contain').children();が返されるため、おそらく動作しませんか?[object Object]

Complete code:

function startSlideShow(interval) {
//var slides = $('#contain').children();
var slides = $('#contain').children().get();
console.log("0: " + slides);
slides.each(function () {
    console.log($(this));
});
for (var i = 0; i < slides.length; i++) {
    setTimeout(
        function () {
            var slide = $(slides[i]).children();
            console.log("1: " + slide);
            $('#currentImage').attr('src', slide[0].src).fadeIn(interval * 100);
            $('#slideDesc').html(slide[1].innerHTML).fadeIn(interval * 100);
        }, interval * 1000);
}
}

in the html:

<article id="imageShow">
    <div class="image">
        <img src="" id="currentImage" />
    </div>
    <div id="imageCover"></div>
</article>

<article id="contain">
    <div class="image">
        <img src="http://i.imgur.com/925p6M5.jpg" />
        <span>1Lorem Ipsum is simply dummy text of the printing and typesetting industry. </span>
    </div>
    <div class="image">
        <img src="http://i.imgur.com/dbBu5rk.jpg" />
        <span>2 Lorem Ipsum is simply dummy text of the printing and typesetting industry. </span>
    </div>
    <div class="image">
        <img src="http://i.imgur.com/VFxPGEi.gif" />
        <span>3 Lorem Ipsum is simply dummy text of the printing and typesetting industry. </span>
    </div>
</article>

コンソールで次のようなエラーが表示されます:「Uncaught TypeError: 未定義のプロパティ 'src' を読み取れません」

4

4 に答える 4

1

あなたが探しているのは

function startSlideShow(interval) {
    var slides = $('#contain').children();
    slides.each(function (i, v) {
        setTimeout(function () {
            var slide = $(v);
            $('#currentImage').attr('src', slide.children('img').attr('src')).fadeIn(interval * 100);
            $('#slideDesc').html(slide.children('span').html()).fadeIn(interval * 100);
        }, i * interval);
    });
}

デモ:フィドル

于 2013-09-05T09:53:24.713 に答える
0

単純に children() に言及する代わりに、子要素を指定しようとしています。

于 2013-09-05T09:48:31.853 に答える