2010-11-21 4 views
0

Как обычно, элементы выбора отображаются при щелчке элемента выбора, и я хотел бы получить высоту элементов опции.Получение высоты элемента опции с помощью javascript?

Спасибо.

Редактировать @David старой школы выберите

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

Вы спрашиваете, как получить комбинированную высоту всех параметров в выбранном элементе? Или просто высота выбранного варианта? – roto

+1

Не могли бы вы рассказать нам о своей наценке? –

+0

@roto было бы достаточно. – Ozgur

ответ

1

Я считаю, что это то, что вы хотите

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

Вот demohttp://jsfiddle.net/xf3wD/

+0

Нет, я ошибся в своем предыдущем (удаленном) комментарии, поэтому он не работает. – Ozgur

+0

@ Ozgur дайте нам дополнительную информацию и, возможно, мы сможем вам помочь. –

+0

@ Ozgur ... Взгляните на демо, которое я сделал, и дайте мне знать, что не так. –

0

Если вы с помощью библиотеку, такую ​​как jquery, вы можете сделать:

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

См here.

Если вы не используете jquery, посмотрите на offsetHeight. Это должно получить то, что вы хотите.

+0

К сожалению, это не работает, поскольку вычисленное значение элемента option равно 0 – Ozgur

+0

Я не пробовал jquery, но я бы предположил, что они правильно обрабатывают высоты параметров. Спасибо за подсказку, хотя не знал об опциях. – Jon

5

Это невозможно, так как на самом деле это не элементы опции, которые показаны.

В стандарте HTML указывается, что браузер должен предоставить какой-то способ выбора из параметров, а не как это должно отображаться. Поэтому нет стандартного способа получения какой-либо информации о том, как она отображается.

Регулярные браузеры отображают параметры как своего рода раскрывающийся список, но другие браузеры могут показать его совершенно по-другому. Некоторые браузеры мобильных телефонов, например, показывают всплывающее окно, которое охватывает весь экран.

0

На выбор вы можете сделать это:

$(document).ready(function() { 

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

}); 
+0

дайте мне знать, если он работает –

+1

Событие клика никогда не запускается в элементе select, кроме mousedown. Ничего не работает. Также дети - это метод не собственности, поэтому он должен быть детьми() – Ozgur

+0

hm, вы правы. –