2012-11-26 18 views
0

我有一個簡單的列表UL添加李書福陣列並查看的console.log

<ul id="gallery"> 
    <li><a href=""><img src="images/01.jpg" /></a></li> 
    <li><a href=""><img src="images/02.jpg" /></a></li> 
    <li><a href=""><img src="images/03.jpg" /></a></li> 
    <li><a href=""><img src="images/04.jpg" /></a></li> 
    </ul> 

我想補充的李時珍(它們的內容)到一個數組然後取出裏,然後查看陣列與console.log 我正在使用這個。

$(function(){ 

    var imgArr=[]; 

    $('#gallery li').each(function(){ 
     imgArr.push($(this)); 
     $(this).remove(); 
    }) 

    console.log(imgArr); 

    }) 

我以爲的console.log會告訴我李的含

<a href=""><img src="images/01.jpg" /></a> 

相反,我得到對象列表[1]

這是正確的方式列表添加李和內容?

如何查看數組的內容?

回答

3

您正在將jQuery對象推入數組中。使用imgArr.push(this)而不是imgArr.push($(this))來改爲推送DOM節點。

演示:http://jsfiddle.net/5rAeH/

在我刪除您.each,而是使用

var imgArr = $.makeArray($('#gallery li')); 
console.log(imgArr); 

$("#gallery li").remove(); 
console.log(imgArr); 
1

推式更改爲

imgArr.push($(this).html()); 

現在您可以在HTML推入陣不是演示Jquery對象。

+0

我怎麼可能還包括環繞李所以每個輸入數組爲'

  • ' – ttmt

    +0

    @ user668499 use this.oute rHTML'而不是'$(this).html()'來獲得外部html。 –

    1

    您的代碼需要修改,您必須在數組中添加「this」。

    $(document).ready(function(){ 
        var imgArr=[]; 
        $('#gallery li').each(function(){ 
        imgArr.push(this); 
        $(this).remove(); 
        }) 
        console.log(imgArr); 
    });​ 
    
    1

    要打印數組的內容HTML(而不是JavaScript對象)做

    $('#gallery li').each(function() { 
        console.log(index + ': ' + $(this).html()); 
    }); 
    
    0
    $(function(){ 
        var imgArr=[]; 
    
        $('#gallery li').each(function(i,elm){ 
         imgArr[i] = elm.outerHTML; 
         $(elm).remove(); 
        }); 
        console.log(imgArr); 
    }); 
    

    FIDDLE