2

一部の文字列を比較するために localCompare を使用しています。これらの文字列は数値です。順序を数値にしたい。これどうやってするの?

ソート機能:

requestAmountEl.find('optgroup').each(function(){
    var $this = jQuery(this);

    options = $this.children('option');
    options.detach().sort(function(a,b) {
        return b.value.localeCompare(a.value);
    }).appendTo($this);
});

結果:

<optgroup label="6 Months">
    <option value="2000">$2,000</option>
    <option value="11000">$11,000</option>
    <option value="10000">$10,000</option>
    <option value="1000">$1,000</option>
</optgroup>

現在、2000、10000、11000、1000 でソートされます。

4

2 に答える 2

2

解決:

requestAmountEl.find('optgroup').each(function(){
    var $this = jQuery(this);

    options = $this.children('option');
    options.detach().sort(function(a,b) {
        if (parseInt(b.value) > parseInt(a.value)) return 1;
        else if (parseInt(b.value) < parseInt(a.value)) return -1;
        else return 0;
    }).appendTo($this);
});
于 2013-08-26T21:56:30.093 に答える