有没有办法在不破坏代码的情况下删除optgroup?
问题描述:
我所要做的只是编辑一些旧代码,在那里我创建了一个选项组,但现在我想把它拿走。我不能用CSS来做,因为它使用了选择的插件。有没有办法在不破坏代码的情况下删除optgroup?
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;
}
答
本工程以删除所有给定select
元素的optgroup
儿童:
标记:
<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/
答
这是如何从标签发现并删除,
$("#mySelect").children().remove("optgroup[label='MyGroup']");
PS这是我想要的,出版他人受益
答
$("#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">
\t <optgroup label="MyGroup">
\t \t <option>Option1</option>
\t \t <option>Option2</option>
\t \t <option>Option3</option>
\t \t <option>Option4</option>
\t </optgroup>
\t \t <optgroup label="MyGroup2">
\t \t <option>Option5</option>
\t \t <option>Option6</option>
\t \t <option>Option7</option>
\t </optgroup>
</select>
谢谢您!这正是我需要的! – 2013-02-19 23:24:50
为什么这些选项不嵌套在optgroup中? – Moeri 2013-09-02 09:51:38
@Moeri,因为那是jQuery代码完成的事情,它删除了optgroup。 – 2013-09-02 15:35:44