Сортировка всех выбранных выпадающих - PullRequest
2 голосов
/ 20 июля 2011

Я пытался найти более динамичное решение, чем именование всех выпадающих списков по отдельности, и мне кажется, что я пропустил селекторную лодку.Я хочу сделать что-то вроде следующего:

$(function () {    
    // loop through all the lists
    $("select").each(function(){
       var myId = $(this).attr('id'); 
       sortDropDownListByText(myId);
    });

    // pass the Id to a function to sort
    function sortDropDownListByText(selectId) {     
        $(selectId).html($(selectId + " option").sort(function(a, b) {        
            return a.text == b.text ? 0 : a.text < b.text ? -1 : 1     
        }))  
    }
});

Моя конечная цель будет иметь класс CSS как селектор, а не все, но я чувствую, что решение здесь даст мне то, что мне нужно там.

Ответы [ 2 ]

1 голос
/ 22 сентября 2011

Если вы открыты для небольшого плагина сортировки, то этот плагин приличный tinysort и имеет гибкое использование, например:

// sort by the element's text
$("ul#people>li").tsort();

// sort by a child's text
$("ul#people>li").tsort("span.surname");

// sort by the img element, order descending using the img's "alt" attribute
$("ul#people>li").tsort("img",{order:"desc",attr:"alt"});

Также есть сообщение в блоге, которое рассматривается какхорошо http://blog.pengoworks.com/index.cfm/2008/9/11/Sorting-DOM-elements-using-jQuery

0 голосов
/ 07 октября 2011

Следующее решило мой начальный вопрос. :)

$(document).ready(function () {
    $('select').each(function () {
       sortDropDownListByText(this);
    });
});

// pass the select object to a function to sort  
function sortDropDownListByText(selectObject) {
    $(selectObject).html($("option", selectObject).sort(function (a, b) {
        return a.text == b.text ? 0 : a.text < b.text ? -1 : 1;
    }));
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...