jQuery pour sérialiser les seuls éléments à l'intérieur d'un div
Je voudrais obtenir le même effet que jQuery.serialize()
mais je voudrais revenir seul l'enfant elments de div
.
Exemple de résultat :
single=Single2&multiple=Multiple&radio=radio1
Vous devez vous connecter pour publier un commentaire.
Pas de problème. Utilisez simplement le suivant. Cela va se comporter exactement comme la sérialisation d'une forme, mais à l'aide d'un div de contenu.
Vérifier http://jsbin.com/azodo pour une démonstration (http://jsbin.com/azodo/edit pour le code)
$("#divId").find("select, textarea, input").serialize();
le rendement de meilleures performances? J'imagine que le ci-dessus pourrait devenir lent si la div a beaucoup d'éléments, comme un tableau avec plusieurs lignes/colonnes.$("#divId :input")
, bien que si je supprime la méthode de sérialisation , il retourne tous les éléments d'entrée à l'intérieur de la div-tu , aucune idée pourquoiVous pouvez améliorer la vitesse de votre code si vous restreindre les éléments jQuery va regarder.
Utiliser le sélecteur :entrée au lieu de * pour l'atteindre.
Cela permettra de rendre votre code plus vite, parce que la liste des éléments est la plus courte.
serialize
les éléments à l'intérieur d'undiv
.Vous pouvez le faire par le ciblage de la div
#target-div-id
à l'intérieur de votreform
à l'aide de :La fonction que j'utilise actuellement:
Essayez également ceci:
Qu'en ma solution:
JS:
HTML:
ID
dans chaque sélecteur, comme:$('#divId > input, #divId > select, #divId > textarea')
; Aussi, le>
symbole, il se réfère à diriger les enfants des éléments... Très inhabituel dans ce scénario, ou du moins, très restrictive .Si ces éléments ont en commun un nom de classe, on peut aussi utiliser ceci:
De cette façon, vous pouvez éviter la sélection de boutons, qui seront sélectionnés à l'aide du sélecteur jQuery
:input
. Mais cela peut aussi être évitée en utilisant$('#your_div :input:not(:button)').serialize();