簡體   English   中英

jQuery對表行中的下拉列表進行排序

[英]Jquery to sort drop down list in a table row

如何對下面的下拉列表進行排序? 我需要按名稱對其進行排序,並刪除某些以“ S”開頭的選項。

<table>
<tr>
    <td class="bold"><a href="/admin/programs/" target="_top">Program Link</a></td>
    <td>
        <select name="ProgramLink">
            <option value="0">None Selected</option>
            <option value="2985">Cluster</option>
            <option value="2986">Seminar</option>
            <option value="2991">Services</option>
            <option value="2982">Biliteracy</option>
            <option value="2983">Learner MEC</option>
            <option value="2987">Day Class</option>
        </select>
    </td>
</tr>   
</table>

我認為這段代碼加上將order類添加到您的選擇中可能會有所幫助:

$('select.order').each(function() {
    var options = [];
    $(this).find('option').each(function() {
        if ($(this).text().indexOf('S') != 0) {
            options.push({value: $(this).val(), label: $(this).text()});
        };
    })
    if (options.length > 0) {
        options = options.sort(function(a, b) {
            var x = a['label']; var y = b['label'];
            return ((x < y) ? -1 : ((x > y) ? 1 : 0));
        });
        var options_html = '';
        $.each(options, function(i, option) {
            options_html += '<option value="'+option.value+'">'+option.label+'</option>';
        });
        $(this).html(options_html);
    };
})

注意:您的html代碼缺少</select> ;)

var options = $('select option');
options.detach().sort(function(a,b) {
    var at = $(a).text();
    var bt = $(b).text();
    return (at > bt)?1:((at < bt)?-1:0);
});
options.appendTo('select'); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM