2010-11-30 6 views
0

HI, j'ai un objet: var myobject = new Objet; et je veux le remplir dynamiquement avec des propriétés en boucle à travers la collecte d'entrée jquery de cette manière:remplir l'objet javascript "à la volée"

$('.test').each(function(){ 
    myobject.$(this).attr('name') = $(this).val(); 
}); 

ce que je fais mal ici? merci à l'avance

+0

virgule manquant? après val() –

+4

le point-virgule n'a pas d'importance ici. – epascarello

Répondre

3

Essayez ceci:

$('.test').each(function() { 
    var e = $(this); 
    myobject[e.attr('name')] = e.val(); 
}); 

objets en JavaScript sont accessibles en utilisant object.property ou object['property'] (ces deux sont équivalents). Ce dernier vous permet d'utiliser des expressions (comme des variables): object[propertyName].

+0

merci! ce dont j'avais besoin – alega

+0

@alega: Vous pouvez accepter la réponse qui vous convient le mieux en cliquant sur la coche vide qui se trouve à côté. – jwueller

+0

Cette réponse n'est pas efficace en raison des deux $ (this) à l'intérieur de la fonction. Utiliser $() est cher. – epascarello

0

Avec la façon dont vous le faites:

var myObject = {}; 
$('.test').each(
    function(){ 
     var elem = $(this); 
     myObject[elem.attr('name')] = elem.val(); 
    } 
); 
+0

ce fichier fonctionne aussi, merci – alega