我有以下标记: -
<select name="List1" id="l1">
<option>One</option>
<option>Two</option>
<option>Three</option>
<option>Bob</option>
<option>Four</option>
<option>Five</option>
<option>Alyn</option>
</select>
以下jquery: -
$('#l1 option:nth-child(n+5)').wrapAll('<optgroup label="Group 1">');
导致Four Five和Alyn出现在名为Group 1的选择组中。
我希望按字母顺序对结果进行排序,但是在应用了optgroup之后。
所以前四个结果应按字母顺序排序,而optgroup中的最后三个结果应按字母顺序排序。
答案 0 :(得分:2)
$('#sort').click(function() {
var $options = $('#l1 option:nth-child(n+5)');
$options.sort(function(a, b) {
return $(a).text().localeCompare($(b).text());
});
$options.wrapAll('<optgroup label="Group 1">');
$options = $('#l1').children('option');
$options.sort(function(a, b) {
return $(a).text().localeCompare($(b).text());
});
$('#l1').prepend($options).val($("#l1 option:first").val());
});