如何从选择菜单中删除选项?

Posted

技术标签:

【中文标题】如何从选择菜单中删除选项?【英文标题】:How to remove the options from a Selectmenu? 【发布时间】:2017-05-03 18:46:58 【问题描述】:

我在一个 div 中有三个 selectmenu 对象。第一个与页面一起加载。当我在第一个中选择某些内容时,该值用于填充第二个。在第二个中选择会填充第三个。

在将新位放入字段之前,我需要清空旧位。

似乎没有工作 - 所以我正在做一些看起来很愚蠢的事情。没有错误消息..只是没有清空。

firstSelect = $("#first");

$.ajax(
    populate 'first'
);

secondSelect = $("#second");

firstSelect.selectmenu(
    change: function( event, data ) 
        secondSelect.empty();
        getSeconds(data.item.value);
    
).selectmenu("menuWidget").addClass('overflow');

thirdSelect = $("third");
secondSelect.selectmenu(
    change: function( event, data ) 
        thirdSelect.empty();
        getThirds(data.item.value);
    
).selectmenu( "menuWidget" ).addClass('overflow');
<body>
    <div>
        <select id='first'></select>
        <select id='second'></select>
        <select id='third'></select>
    </div>
</body>

我也试过$("#selectId").html("");


编辑:

尝试使用 $("#selectid").selectmenu("refresh")$("#selectid").empty().selectmenu("refresh") - 当我尝试打开列表(单击它)时都给我这个错误:

jquery-ui.min.js:11 Uncaught TypeError: Cannot read property 'index' of undefined 在 HTMLUListElement.focus (http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js:11:25160) 在 t.(匿名函数).(匿名函数)._trigger (http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js:6:11090) 在 t.(匿名函数).(匿名函数).focus (http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js:7:27841) 在 t.(匿名函数).(匿名函数).focus (http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js:6:4499) 在 t.(匿名函数).(匿名函数).open (http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js:11:26239) 在 t.(匿名函数).(匿名函数).open (http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js:6:4499) 在 t.(匿名函数).(匿名函数)._toggle (http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js:11:28018) 在 t.(匿名函数).(匿名函数)._toggle (http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js:6:4499) 在 t.(匿名函数).(匿名函数).click (http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js:11:28578) 在 HTMLSpanElement.r (http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js:6:9786) 焦点@jquery-ui.min.js:11 _trigger@jquery-ui.min.js:6 焦点@jquery-ui.min.js:7 (匿名)@ jquery-ui.min.js:6 打开@jquery-ui.min.js:11 (匿名)@ jquery-ui.min.js:6 _toggle@jquery-ui.min.js:11 (匿名)@ jquery-ui.min.js:6 点击@jquery-ui.min.js:11 r@jquery-ui.min.js:6 调度@jquery.min.js:3 q.handle@jquery.min.js:3

【问题讨论】:

您能补充一下您尝试使用.html()时发生的情况吗? 【参考方案1】:

当您调用empty() 时,它会从底层&lt;select&gt; 元素中删除&lt;option&gt; 元素,但不会自动更新选择菜单插件。您需要使用 refresh 选项手动执行此操作,如下所示:

secondSelect.empty().selectmenu('refresh');

我还建议您遵守 jQuery 命名标准,并在包含 jQuery 对象的变量的开头放置一个 $ 字符,例如。 $firstSelect$secondSelect 等等。

【讨论】:

以上是关于如何从选择菜单中删除选项?的主要内容,如果未能解决你的问题,请参考以下文章

如何从表格的下拉菜单中删除先前选择的选项?

当用户从下拉菜单中选择选项时,如何从数据库中打印记录?动态程序

如何删除WPS专业版的MathType选项卡?

centos7 多个启动菜单(选项),如何删除?

PayPal IPN,如何从下拉菜单中选择价格

如何在反应选择下拉菜单中的选项下添加子选项?