Menu

In mobile browsers, hiding an option element requires JavaScript.

Mobile browsers do not allow you to hide a option element using the hidden attribute. There are therefore two solutions in JavaScript to work around this problem.

The first involves removing the elements, filtering and restoring.


'use strict';

const select = document.querySelector('#select');
const originalSelectHTML = select.innerHTML; // For restoring

select.querySelectorAll('option').forEach(option => {
   if(option.value === 'B') {
       option.remove();
   }
});

The second is to insert options into other elements and then work with CSS on their parents.


'use strict';

const select = document.querySelector('#select');

select.querySelectorAll('option').forEach(option => {
   let parent =  document.createElement('div'); 
   if(option.value === 'B') {
       option.parentNode.insertBefore(parent, option);
       parent.appendChild(option);
   }
});

Then with CSS:


#select div {
    display: none !important;
}

Share: