2011-05-05 9 views
7

http://jsfiddle.net/nicktheandroid/2uMjv/जावास्क्रिप्ट कैसे प्रत्येक LI.span

मैं संख्या प्रत्येक LI भीतर सी अवधि में है कि के आधार पर LI की सूची को सॉर्ट करने कोशिश कर रहा हूँ के भीतर संख्या के आधार पर एक सूची सॉर्ट करने के लिए। मैंने प्लगइन को देखा है जो ऐसा कर सकता है लेकिन यह वही नहीं है जो मैं चाहता हूं।

क्या कोई मुझे दिखा सकता है कि आप कैसे ऊपर बताए गए एक साधारण सूची को सॉर्ट करेंगे? मुझे वास्तव में कोई विचार नहीं है कि कहां से शुरू करना है, मुझे नहीं पता कि यह जटिल या सरल है या नहीं।

उत्तर

5
+0

अच्छा एक। ऐसा लगता है कि काम करता है। मैं अभी भी अच्छा खेलने के लिए $ .map() प्राप्त करने की कोशिश कर रहा हूं। आपके उदाहरण में –

+1

, अंतिम सूची आइटम सही जगह पर नहीं है, क्या आप जानते हैं कि यह क्यों है? मैं इसे समझ नहीं पाया। यह '08' है –

3

आप सभी <li> तत्वों के साथ एक सरणी भरना चाहिए, तरह इस सरणी sort() का उपयोग कर, तो empty() सूची append() क्रमबद्ध तत्वों को जोड़ने।

कुछ इस तरह:

// store the li items 
var items = $('ul li').get(); 

items.sort(function(a, b) { 
    var valueA = $(a).find("span").text(); 
    var valueB = $(b).find("span").text(); 

    if (valueA < valueB) return -1; 
    if (valueA > valueB) return 1; 
    return 0; 
}); 

// clear the list and re-add sorted items 
$("ul").empty().append(items); 

jsFiddle example here

+1

तुलना –

+0

के दौरान संख्या (मूल्य ए) संख्या (मानबी) का उपयोग करें, मैं गैर-प्राकृतिक सॉर्टिंग व्यवहार को रोकने के लिए 'parseInt()' में अपना 'मान ए' और' वैल्यूबी 'चर लपेटूंगा। यह इस मामले में काम करेगा, हालांकि अगर किसी को स्ट्रिंग विशेषता से सॉर्टिंग मान मिलते हैं, तो यह सही ढंग से सॉर्ट नहीं होगा। –

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