119 votes

jquery pour ne sérialiser que les éléments d'une div

Je voudrais obtenir le même effet que jQuery.serialize () mais je voudrais renvoyer uniquement les éléments enfants d'un div donné.

exemple de résultat:

 single=Single2&multiple=Multiple&radio=radio1
 

287voto

jitter Points 35805

Aucun problème. Il suffit d'utiliser ce qui suit. Cela se comportera exactement comme si vous sérialisiez un formulaire mais que vous utilisiez plutôt le contenu d'un div.

 $('#divId :input').serialize();
 

Consultez http://jsbin.com/azodo pour une démonstration ( http://jsbin.com/azodo/edit pour le code)

22voto

ThiagoPXP Points 545

Vous pouvez améliorer la vitesse de votre code si vous limitez les éléments que jQuery examinera.

Utilisez le sélecteur : entrez au lieu de * pour le réaliser.

 $('#divId :input').serialize()
 

Cela accélérera votre code car la liste des éléments est plus courte.

5voto

l0co Points 614

La fonction que j'utilise actuellement:

 /**
 * Serializes form or any other element with jQuery.serialize
 * @param el
 */
serialize: function(el) {
    var serialized = $(el).serialize();
    if (!serialized) // not a form
        serialized = $(el).
          find('input[name],select[name],textarea[name]').serialize();
    return serialized;
}
 

3voto

Essayez aussi ceci:

$ ('# divId'). find ('input'). serialize ()

0voto

user3244711 Points 11

Ou $ ('# divId> input, select, textarea'). Serialize ()

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X