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

その結果、フォーファイブとアリンがグループ1と呼ばれるオプトグループに登場します。

結果をアルファベット順に並べ替えたいのですが、optgroupが適用された後です。

したがって、最初の4つの結果はアルファベット順に並べ替える必要があり、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 に答える