如何从Selectmenu中删除选项?

时间:2016-12-18 16:20:53

标签: javascript jquery jquery-ui jquery-ui-selectmenu

我在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:无法读取属性&#39; index&#39;未定义的       在HTMLUListElement.focus(http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js:11:25160)       at t。(匿名函数)。(匿名函数)._ trigger(http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js:6:11090)       at t。(匿名函数)。(匿名函数).focus(http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js:7:27841)       at t。(匿名函数)。(匿名函数).focus(http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js:6:4499)       at t。(匿名函数)。(匿名函数).open(http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js:11:26239)       at t。(匿名函数)。(匿名函数).open(http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js:6:4499)       at t。(匿名函数)。(匿名函数)._ toggle(http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js:11:28018)       at t。(匿名函数)。(匿名函数)._ toggle(http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js:6:4499)       at 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   dispatch @ jquery.min.js:3   q.handle @jquery.min.js:3

1 个答案:

答案 0 :(得分:2)

当您致电<option>时,它会从基础<select>元素中删除refresh元素,但不会自动更新selectmenu插件。您需要使用secondSelect.empty().selectmenu('refresh'); 选项手动执行此操作,如下所示:

$

我还建议您坚持使用jQuery命名标准,并在包含jQuery对象的变量的开头放置一个$firstSelect字符,例如。 $secondSelect,{{1}}等等。