如何使用jquery打开select元素

我有一个选择元素如下。 我想打开它而无需用户点击它。

 Option1 Option2 Option3 Option4  

如果可能使用jquery或javascript,请告诉我

您将CSS选择器传递给openSelect() ,它将为您打开select元素。

 var openSelect = function(selector){ var element = $(selector)[0], worked = false; if (document.createEvent) { // all browsers var e = document.createEvent("MouseEvents"); e.initMouseEvent("mousedown", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); worked = element.dispatchEvent(e); } else if (element.fireEvent) { // ie worked = element.fireEvent("onmousedown"); } if (!worked) { // unknown browser / error alert("It didn't worked in your browser."); } } $(function(){ // when DOM is ready // open .select element openSelect('.select'); }); 

这是一个小提琴: http : //jsfiddle.net/Z48wF/1/

来源: 如何使用jquery @ stackoverflow.com 打开选择输入

您可以在此处找到类似的问题: 如何以编程方式告诉HTML SELECT下拉(例如,由于鼠标hover)?

我不认为有一个解决方案适用于每个浏览器。

我可以确认使用document.createEvent().dispatchEvent() (如上面的链接所解释的)在WebKit浏览器(Safari,Chrome)中运行良好,但在Firefox,Opera和IE中运行不佳。

但是,您可以尝试组合其中列出的不同解决方案。

我有一个完整的解决方案来解决这个问题是否可以使用JS打开HTML选项来显示其选项列表? 。 在此方案中,可以正确,轻松地打开选择,具有所有function并保留页面布局。 该解决方案安全,简单并与Internet Explorer,FireFox和Chrome兼容。

谢谢!

 $(document).ready(function(){ $('#selId').on('click',function(){ //do stuff here }); $('#selId').trigger('click'); }); 

这应该工作。

更新:

 $(document).ready(function(){ $('#selId').click(function(){ //do stuff here }); $('#selId').click(); }); 

与其他答案非常相似,但是应该这样做而不是“点击”你可以试试“焦点”

您可以使用以下脚本

  

您只需触发click事件:

 jQuery(document).ready(function($) { $('#selId').click(); });