2012-08-02 8 views
7

Come si memorizzano i dati nell'array all'interno di un loop?Come archiviare i dati nell'array all'interno di un loop jQuery

var images; 
    var i = 0; 

    $('#cover div').each(function() 
    { 
     alert($(this).attr('id')); 
     //I should store id in an array 
    }); 


    <div id="cover"> 
     <div id="slider_1"><p class="content">SLIDER ONE</p></div> 
     <div id="slider_2"><p class="content">SLIDER TWO</p></div> 
     <div id="slider_3"><p class="content">SLIDER THREE</p></div> 
    </div> 

risposta

23

Prova questo,

var arr = []; 
i = 0; 
$('#cover div').each(function() 
{ 
     alert($(this).attr('id')); 
     arr[i++] = $(this).attr('id'); 
     //I should store id in an array 
}); 

altro modo per ottenere id utilizzando JavaScript oggetto invece di jQuery per aumentare le prestazioni.

var arr = []; 
i = 0; 
$('#cover div').each(function() 
{ 
     arr[i++] = this.id; 
}); 

Modifica È inoltre possibile utilizzare jQuery map()

Live Demo

arr = $('#cover div').map(function(){ 
    return this.id; 
}); 
+0

mi hanno picchiato anche questo:/+1 –

+0

Ultimi 5 secondi: '( – Sourav

+3

Perché non spingerlo semplicemente sull'array invece di perdere tempo con un contatore? Oppure usare l'argomento index per la funzione di callback '.each'. – Blazemonger

2

javascript array hanno un metodo push (el) come questo:

var images; 
var i = 0; 

$('#cover div').each(function() 
{ 
    alert($(this).attr('id')); 
    images.push($(this).attr('id')); 
}); 

<div id="cover"> 
    <div id="slider_1"><p class="content">SLIDER ONE</p></div> 
    <div id="slider_2"><p class="content">SLIDER TWO</p></div> 
    <div id="slider_3"><p class="content">SLIDER THREE</p></div> 
</div> 
+0

troppo lento :(... – Jaro

+0

Terrò questo a mente. Grazie – BentCoder

Problemi correlati