Utilisation de jQuery pour obtenir la largeur de chaque élément dans une liste
J'essaie d'obtenir la valeur de la largeur de chaque élément de la liste à un élément, mais il revient toujours, l'objet et non pas la largeur. Ce doit être vraiment simple, mais pour une raison que je doit manquer quelque chose.
Voici mon code:
var listWidth = $('ul li').each(function(){
return $(this).width();
});
console.log(listWidth);
chaque ne fonctionne pas de cette façon
OriginalL'auteur PropSoft | 2011-02-01
Vous devez vous connecter pour publier un commentaire.
Utiliser le
map()
(docs) méthode au lieu de retourner la valeur d'un objet jQuery, puis leget()
(docs) méthode pour convertir un Tableau.Ou similaire, vous pouvez utiliser le
jQuery.map()
(docs) méthode, qui renvoie un Tableau.La droite. Merci pour la réponse. Vous ne savez pas où la .get() est venu. Ce n'est pas une requête AJAX.
Quelle requête AJAX? Ma réponse n'a rien à voir avec l'AJAX.
Apparemment, jQuery a 2 .get() fonctions (juste comme la façon dont il a 2 .load() les fonctions). fonction est utilisé de la manière que vous l'avez utilisé dans votre réponse, tandis que autre est utilisé pour les requêtes AJAX.
OriginalL'auteur user113716
Vous pouvez les obtenir en poussant les valeurs d'un tableau aussi:
Voici un exemple.
OriginalL'auteur mVChr
Puisque vous aurez plusieurs éléments de la liste, vous pouvez créer un tableau de largeurs:
Ou, au lieu de cela, vous pouvez créer un objet avec les largeurs:
Cet exemple crée un objet qui contient l'id de la balise et sa largeur (
{ id1: width, id2: width, etc...}
, en supposant que chaque balise a un id).L'exemple de code que vous avez posté eu le problème que, lors du retour à la largeur, il était de retour à la chaque fonction (qui probablement juste écarté), mais
listWidth
était la valeur de retour de la chaque la fonction, non pas de la fonction anonyme à l'intérieur (donc, puisque la chaque fonction retourne un objet jQuery, c'est ce qui a été attribué à listWidth).OriginalL'auteur jhartz