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再次附加选项,但我不知道这是否是您需要的。 请说明你想做什么。