2010-11-21 31 views
0

Comme d'habitude, les éléments d'option sont montrés quand un élément de sélection est cliqué et j'aimerais obtenir la taille des éléments d'option.Obtenir la hauteur d'un élément d'option avec javascript?

Merci.

Modifierold school @ David select

<select> 
<option>a</option> 
<option>s</option> 
</select> 
+0

Demandez-vous comment obtenir la hauteur combinée de toutes les options d'un élément de sélection? Ou juste la hauteur de l'option sélectionnée? – roto

+1

Pourriez-vous nous donner une idée de votre majoration? –

+0

@roto serait soit suffisant. – Ozgur

Répondre

1

Je crois que c'est ce que vous voulez

$(document).ready(function() { 
    $("#mySelect").change(function() { 
    alert($(this.options[this.selectedIndex]).height()); 
    }); 
}); 

Voici une demohttp://jsfiddle.net/xf3wD/

+0

non je me suis trompé sur mon précédent commentaire (supprimé), donc ça ne marche pas. – Ozgur

+0

@Ozgur nous donner plus d'informations et peut-être que nous pourrions vous aider. –

+0

@Ozgur ... Jetez un oeil à la démo que j'ai faite et faites-moi savoir ce qui ne va pas. –

0

Si vous utilisez un bibliothèque comme jquery, vous pouvez faire:

$('#select option:first').height()

Voir here.

Si vous n'utilisez pas jquery, regardez offsetHeight. Cela devrait vous apporter ce que vous voulez.

+0

Malheureusement cela ne fonctionne pas car la valeur calculée d'un élément d'option est 0 – Ozgur

+0

Je n'ai pas essayé jquery, mais j'imagine qu'ils traitent correctement les hauteurs d'option. Merci pour le conseil si je ne savais pas cela sur les options. – Jon

5

Ce n'est pas possible car ce ne sont pas les éléments d'option qui sont affichés.

La norme HTML spécifie uniquement que le navigateur doit fournir un moyen de choisir parmi les options, et non comment cela devrait être affiché. Par conséquent, il n'existe aucun moyen standard d'obtenir des informations sur la façon dont il est affiché.

Les navigateurs standard affichent les options sous forme de liste déroulante, mais d'autres navigateurs peuvent les afficher de manière complètement différente. Certains navigateurs de téléphones mobiles par exemple montre une fenêtre qui couvre l'ensemble de l'écran.

0

Lors de la sélection, vous pouvez le faire:

$(document).ready(function() { 

    $('#select').click(function() { 
     var H = $(this).children().height(); 
     alert(H); 
    }); 

}); 
+0

laissez-moi savoir si cela fonctionne –

+1

événement de clic n'est jamais déclenché sur un élément de sélection, mais mousedown. Aucun des deux ne fonctionne de toute façon. Aussi les enfants sont une méthode non propriété donc il devrait être enfants() – Ozgur

+0

hm, vous avez raison. –