jquery
  • list
  • html-lists
  • 2009-05-19 55 views 9 likes 
    9

    有誰知道如何將一個項目添加到列表,但這樣做,所以它的按字母順序使用jQuery? 我有下面的代碼,只是增加了一個項目從下拉到列表的末尾:如何使用jQuery添加一個列表項目?

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

    ,但我希望能夠將其插入其適當的位置,而不是隻追加到現有列表的結尾。

    任何幫助,非常感謝! 謝謝!

    回答

    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); 
    

    firstafteritem值將是具有您要添加一前一後的文本值的第一個列表項。 (或者如果它是最後一個,則沒有)。然後,if/else將在該項目之前或在列表的末尾插入它。

    (這當然,假定您的列表的值已經在順序。)

    +0

    這工作完美!謝謝! – 2009-05-19 13:54:59

    0

    我不認爲有一個簡單的方法與jQuery核心至少。

    關閉我的頭頂,未經檢驗的,簡單的東西像這可能,如果你的列表是短(因爲它的O(N))

    var liArr=$("#projectList li").get(); 
    var newText=$("#Projects :selected").text(); 
    var newEle=$("<li>" 
        + newText 
        + " <span class='removeProject' projectId='" + $("#Projects").val() + "'>Remove</span>" 
        + "</li>"); 
    for(var li=0; li<liArr.length; li++) { 
        if(newText<liArr[li].innerHTML) { 
        $("#projectList").get(0).insertBefore(newEle,liArr[li]); 
        newEle=null; 
        break; 
        } 
        } 
    if(newEle) { $("#projectList").append(newEle); } 
    
    0

    您可以分析列表中看到您的項目應該工作被添加,然後使用after()jquery函數來添加你的項目。

    1
    <script type="text/javascript"> 
        $(document).ready(function(){ 
        $("#doctype li:first").before("<li><a href='intranet/library'>All documents</a></li>"); 
        }); 
    </script> 
    
    +2

    歡迎來到StackOverflow,@irshad。花點時間看看如何格式化你的答案:http://stackoverflow.com/editing-help =) – 2010-09-24 12:50:46

    相關問題