将[object Object]转换为DOM元素

时间:2013-09-03 20:54:13

标签: javascript jquery

我正在尝试在jQuery中实现幻灯片放映,其中我将所有图像及其描述放在ID为contain的隐藏元素中

在这里,我想获得所有包含元素(img span)对,以便我可以迭代它们。 但问题是:

var slides = $('#contain').children(); //[object Object]
console.log(slides);
//console.log(slides.get(0)); //< this is also not working

这是返回[object Object]但是我希望元素在DOM元素中,所以我可以选择细节,迭代它们等。

任何请帮助我怎样才能得到它?

Complete code:

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

in the html:

<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: Cannot read property 'src' of undefined

2 个答案:

答案 0 :(得分:1)

您可以使用$ .each

slides.each(function(){
    console.log($(this));
});

答案 1 :(得分:1)

你可以试试这个

var slides = $('#contain').children().get();
console.log(slides); // array of dom elements
console.log(slides[0]); // first dom element

或者

$('#contain').children().each(function(k, v){
    console.log(v);
});

EXAMPLE.