Jquery Hiding从下拉选项中选择

时间:2014-02-04 05:06:51

标签: jquery html sorting select hide

我正在使用jquery排序对下拉列表选项进行排序。如何在下拉列表中隐藏选择项目?

Here is my fiddle code

<select id="mySelect">
    <option value="">select</option>
    <option value="1">a</option>
    <option value="12">c</option>
    <option value="4">b</option>
    <option value="5">e</option>
    <option value="6">d</option>
    <option value="8">f</option>
</select>

 $('#mySelect').html($('#mySelect option').sort(function (x, y) {
                                            return $(x).text() < $(y).text() ? -1 : 1;
                                        }));

4 个答案:

答案 0 :(得分:1)

<强> see updated demo

$(function() {
  //make a plugin for sort item you can use in fucture also for sort item 
    $.fn.sortList = function() {
    var list = $(this);
    var items = $("li", list).get();
    items.sort(function(a, b) {
        var listItem1 = $(a).text().toUpperCase();
        var listItem2 = $(b).text().toUpperCase();
        return (listItem1 < listItem2) ? -1 : 1;
    });
    $.each(items, function(i, itm) {
        list.append(itm);
    });
   }
  //plugin code end

  // Now call the plugin
     $('#mySelect').sortList();

});

答案 1 :(得分:0)

查找并删除选项节点:

$("#mySelect > option[value='']").remove();

答案 2 :(得分:0)

您可以使用CSS(仅限)选择器

来完成此操作
#mySelect option[value='']
{
    display: none;
}

Issue:您将在第一时间看到“选择”

如果您对此感到满意,请尝试。别的;

使用CSS选择器使用jquery

$("option[value='']").remove();

或更好(如果您在页面中选择的内容很少):

$("#mySelect option[value='']").remove();

Jsfiddle

祝你好运!

答案 3 :(得分:0)

您说您希望隐藏“选择”选项。你的意思是你希望它从排序中隐藏吗?

另一种说法:除了第一个选项Select之外,在下拉列表中对所有内容进行排序。如果是这样,请考虑:

    $(document).ready(function () {
        var mySelect = $('#mySelect'),
            mySelectOptions = $('option', mySelect),
            selectOption = mySelectOptions.first();
        mySelect.html(mySelectOptions
                .filter(function (index) {
                    return index !== 0;
                })
                .sort(function (x, y) {
                    return $(x).text() < $(y).text() ? -1 : 1;
                })
            ).prepend(selectOption);
    });

使用.filter()方法,您可以提取下拉列表中的所有选项,但第一个选项除外(或者您可以根据其他条件进行过滤...)。缓存第一个选项,我们可以安全地对所有其他选项进行排序,并将第一个选项“Select”作为第一个子元素添加回来。