2013-02-19 69 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>

相關問題