2013-02-19 80 views
2

我所要做的只是编辑一些旧代码,在那里我创建了一个选项组,但现在我想把它拿走。我不能用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; 

}

回答

6

本工程以删除所有给定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/

+1

谢谢您!这正是我需要的! – 2013-02-19 23:24:50

+0

为什么这些选项不嵌套在optgroup中? – Moeri 2013-09-02 09:51:38

+0

@Moeri,因为那是jQuery代码完成的事情,它删除了optgroup。 – 2013-09-02 15:35:44

3

这是如何从标签发现并删除,

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

PS这是我想要的,出版他人受益

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"> 
 
\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>

相关问题