如何使用jQuery按顺序添加列表项?

Chr*_*way 9 jquery list html-lists

有没有人知道如何将一个项目添加到列表但是这样做它是按字母顺序使用jQuery排序的?我有以下代码,只是将一个项目从下拉列表添加到列表的末尾:

$("#projectList").append(
    "<li>"
    + $("#Projects :selected").text()
    + " <span class='removeProject' projectId='" + $("#Projects").val() + "'>Remove</span>"
    + "</li>"
);
Run Code Online (Sandbox Code Playgroud)

但我希望能够将其插入适当的位置,而不是仅仅附加到现有列表的末尾.

任何帮助是极大的赞赏!谢谢!

Plu*_*tor 7

我认为这会奏效:

var new = $(
    "<li>"
    + $("#Projects :selected").text()
    + " <span class='removeProject' projectId='" + $("#Projects").val() + "'>Remove</span>"
    + "</li>"
);

var firstafteritem = $("#projectList").children().filter( function () {
    return ($(this).text() > $("#Projects :selected").text())
} ).eq(0);

if (firstafteritem.length > 0) firstafteritem.before(new);
else                           $("#projectList").append(new);
Run Code Online (Sandbox Code Playgroud)

firstafteritem将是您添加的文本值之后的第一个列表项.(或者如果它将是最后一个则没有.)然后if/else将在该项之前或在列表的末尾插入它.

(当然,这假定您的列表的值已经按顺序排列.)