2009-05-19 23 views
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 का मूल्य एक जोड़े जा रहे के बाद किसी पाठ मान है, जिसमें पहली सूची आइटम होगा। (या कोई नहीं अगर यह आखिरी होगा।) तो अगर/अन्यथा उस आइटम से पहले या सूची के अंत में इसे सम्मिलित करेगा।

(यह, ज़ाहिर है, यह मानता है कि अपनी सूची के मूल्यों के क्रम में पहले से ही कर रहे हैं।)

+0

यह पूरी तरह से काम किया! धन्यवाद! –

0

मुझे नहीं लगता कि वहाँ कम से कम मूल jQuery के साथ एक आसान तरीका है।

मेरे सिर के ऊपर बंद, अपरीक्षित, कुछ इस तरह सरल काम हो सकता है कि आपकी सूची छोटा है (के बाद से इसकी हे (एन))

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

आप सूची पार्स कर सकते हैं देखने के लिए जहां अपने मद चाहिए जोड़ा जा सकता है और फिर अपने आइटम को जगह में जोड़ने के लिए बाद() jquery फ़ंक्शन का उपयोग करें।

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

स्टैक ओवरव्लो, @irshad में आपका स्वागत है। अपने उत्तरों को प्रारूपित करने के तरीके को देखने के लिए समय लें: http://stackoverflow.com/editing-help =) –

संबंधित मुद्दे

 संबंधित मुद्दे