2

我有以下标记:-

<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">');

这导致四五和 Alyn 出现在名为 Group 1 的 optgroup 中。

我希望按字母顺序对结果进行排序,但在应用了 optgroup 之后。

因此,前四个结果应按字母顺序排序,而 optgroup 中的最后 3 个结果应按字母顺序排序。

4

1 回答 1

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

​
于 2012-05-18T09:50:55.273 回答