0

Есть код который автоматически определяет высоту селекта в зависимости от того сколько там пунктов

<select multiple='multiple' id='select' style='overflow:hidden'>
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
  <option>6</option>
  <option>7</option>
</select>

<script>
    var select = document.getElementById('select-filter');
    select.size = select.length;
</script>

Вопрос как мне присвоить в качестве значение переменой select не id класс.

var select = document.getelementsbyclassname('select-filter'); 

.getelementsbyclassname не работает.

Кларк
  • 345
  • 3
  • 16

1 Answers1

0

Вот так:

var select = document.querySelector('.myclass'),
    option = select.querySelectorAll('option');

select.size = option.length;

<select multiple='multiple' class='myclass' style='overflow:hidden'>
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
  <option>6</option>
  <option>7</option>
</select>

Или так:

var select = document.getElementsByClassName('myclass')[0],
    option = select.getElementsByTagName('option');

select.size = option.length;

<select multiple='multiple' class='myclass' style='overflow:hidden'>
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
  <option>6</option>
  <option>7</option>
</select>
Yuri
  • 15,957
  • Спасибо за варианты! можно чуть укортить

    var select = document.querySelector('.myclass'); select.size = select.length;

    – Кларк Jul 04 '17 at 12:40