有没有办法在不破坏代码的情况下删除optgroup?

时间:2013-02-19 22:09:14

标签: jquery drop-down-menu

我尝试的只是编辑一些旧代码,我已经创建了一个选项组,但现在我想把它拿走。我不能用css做它,因为它使用了所选的插件。

function flavorChooser (title, item) {
var title = 'hidden';
var optgroup = jQuery('<optgroup display="' + title + '"/>');


jQuery.each(item, function(sub_title, sub_item) {
    if (typeof sub_item[0] !== "undefined") {
        var opt = jQuery('<option value="' + sub_item[0] + '" data-store-locator-value="' + sub_item[0] + '">' + sub_title + '</option>');
        optgroup.prepend(opt);
    }
});
// console.log('chozen ');
// jQuery('.chzn-container .chzn-results .group-result').css('display', 'none');
return optgroup;

}

3 个答案:

答案 0 :(得分:7)

这可以删除给定optgroup元素的所有select子元素:

标记:

<select id="mySelect">
    <optgroup label="MyGroup"></optgroup>
    <option>Option</option>
    <option>Option</option>
    <option>Option</option>
    <option>Option</option>
    <optgroup label="MyGroup2"></optgroup>
    <option>Option</option>
    <option>Option</option>
    <option>Option</option>
</select>

jQuery的:

 $(function () {
        $("#mySelect").children().remove("optgroup");
    });

jsFiddle:http://jsfiddle.net/frJEq/

答案 1 :(得分:4)

这是如何从标签中找到它并删除,

$("#mySelect").children().remove("optgroup[label='MyGroup']");

p.s这是我想要的,并为其他人发布好处

答案 2 :(得分:1)

$("#mySelect").children().remove('optgroup[label=MyGroup2]');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<select id="mySelect">
	<optgroup label="MyGroup">
		<option>Option1</option>
		<option>Option2</option>
		<option>Option3</option>
		<option>Option4</option>
	</optgroup>
		<optgroup label="MyGroup2">
		<option>Option5</option>
		<option>Option6</option>
		<option>Option7</option>
	</optgroup>
</select>