Selectbox隐藏下拉列表中的第一个选项条目?

当用户单击下拉框以查看Select One时,是否可以隐藏第一个选项,即Select One 。 因此, 选择一个文本不会出现在列表中

由于没有可靠的跨浏览器方式来隐藏option元素,最好的办法是在focus上删除它并在blur时再次添加它:

 jQuery(document).ready(function () { var first = jQuery('#myselect').find('option').first(); jQuery('#myselect').on('focus', function (e) { first.remove(); }).on('blur', function (e) { jQuery(this).find('option').first().before(first); }); }); 

这是一个有效的例子

当select打开时,您可以使用纯HTML来隐藏第一个Element选项:

  

这是工作小提琴: https : //jsfiddle.net/sujan_mhrzn/y5kxtkc6/

作为一个快速的CSS选项,你可以给下拉列表一个id然后

 #cat option:first-child { display: none; } 

以上使用#cat作为下拉列表的id

该解决方案的教程

唯一的跨浏览器方法是完全删除它。 在普通的’JS:

 var sel = document.getElementById("mySelect"); sel.onfocus = function () { select.onfocus = null; sel.removeChild(sel.firstChild); } 

jQuery的:

 $("#mySelect").focus(function () { $(this).remove(this.firstChild).unbind(arguments.callee); }); 

如果要删除该选项,则简单代码为:

 var mySelect = document.getElementById('mySelect'); mySelect.onfocus = function() { mySelect.removeChild(mySelect.options[0]); } 

其中mySelect是选择框的ID。

编辑:我更改了代码以附加焦点事件的事件侦听器。 但是, 每次选择选择框时,此代码都会删除第一个选项。 很确定这不是你需要的。 您可以使用onblur再次附加选项,但我不知道这是否是您需要的。 请说明你想做什么。