JQuery OptGroup alpha排序

时间:2012-05-18 09:24:07

标签: jquery html

我有以下标记: -

<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中的最后三个结果应按字母顺序排序。

1 个答案:

答案 0 :(得分:2)

http://jsfiddle.net/xGENn/16/

$('#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());
});

​