J'essaie de déterminer la largeur d'une chaîne. J'utilise le code suivant, mais cela revient toujours 0. Il semble que l'élément de l'enveloppe soit créé et non déjà présent dans le corps de la page, la largeur de jQuery () renvoie 0. Y a-t-il un moyen de pouvoir obtenir le Largeur du texte sans recourir à la création de code HTML dummy dans la page?
Merci:) P>
$('<span>test</span>').width(); // width = 0 $('span.width').width(); // returns a width value <body><span class="width">test</span></body>
5 Réponses :
Vous pouvez essayer d'ajouter le contrôle avec la visibilité de la propriété CSS Il n'y a aucun moyen d'obtenir la largeur sans ajouter le contrôle, car beaucoup de choses différentes peuvent interférer avec la largeur. P> : Caché code> à la page avant d'obtenir la taille, évitant ainsi la nécessité de rendre l'élément visible. P>
L'élément doit être présent dans le DOM afin que la largeur soit calculée. Si vous devez calculer cela avant que l'utilisateur puisse voir l'élément, essayez de le cacher avant de la mettre dans le DOM. P>
J'ai atteint ici parce que pourquoi faisait des tests avec Jasmine et devait calculer la largeur des objets JQuery créés à la volée. P>
La solution pour les ajouter à un DOM pour les tests était la suivante: http://testdrivenwebsites.com/2010/ 07/29 / HTML-Fixtures-in-Jasmine-à l'aide de Jasmine-JQuery / P>
vous ne peut pas strud> Définir une largeur d'un élément en ligne afin que vous obtiendrez probablement toujours 0 ou null, ou indéfini, ou une variation de sortie qui ne vous aidera pas du tout. P >
Si vous définissez la largeur avec en ligne CSS, je pense que la largeur renvoie la valeur correcte. Pas idéal, mais pourrait être correct pour certains contextes. P>