2011-01-06 13 views
12

मैं जैसे तत्वों का एक समूह है लगता है:लूप और उच्चतम आईडी मान

<div id="car-123" class="blah">..</div> 

मैं उनमें से सभी के माध्यम से लूप करना चाहते हैं और यानी 123

उच्चतम आईडी प्राप्त

यह कैसे करें?

सही और सबसे अच्छा तरीका नीचे है?

$(".blah").each(function() { 

    var id = $(this).attr('id').split('-')[0]; 

    if(id > newid) 
     newid = id; 

}); 
+0

क्या वे आपके सर्वर द्वारा अनुक्रमिक रूप से पृष्ठ में लिखे गए हैं? बस उस मामले में आखिरी काम करना होगा। –

+1

मुझे लगता है कि आपका मतलब '$ (यह) है ... [1]' नहीं '[0] ' –

+0

गैबी की टिप्पणी के अलावा, आपको' $ (यह) ... ~ '' parseInt ($ (यह) ..., 10); स्ट्रिंग तुलना के बजाय संख्या तुलना करने के लिए (क्योंकि "12"> "100")। अन्यथा, यह बहुत सरल दिखता है। –

उत्तर

1

आप मैं तुम्हें दूसरा मान splitted आईडी की जरूरत है का उपयोग करने के parseInt तो संख्यात्मक ऑपरेटरों लागू

var id = parseInt($(this).attr('id').split('-')[1]); 
+0

यह मेरे जैसा ही है, लेकिन 'parseInt' में रेडिक्स पैरामीटर को न भूलें:' parseInt (str, 10); ' – Harmen

+0

आह, मुझे आपका जवाब नहीं मिला। –

0

चाहते हैं, और आप एक पूर्णांक के लिए स्ट्रिंग परिवर्तित करने के लिए इस तरह चाहते हो सकता है:

var newid = 0; 

$(".blah").each(function() { 

    var id = parseInt(this.id.split('-')[1], 10); 

    if(id > newid) 
    newid = id; 

}); 
10

मैं इस के लिए जाना चाहते हैं, .map, .get और .sort का उपयोग कर:

$('.blah').map(function(){ 
    return parseInt(this.id.split('-')[1], 10); 
}).get().sort(function(a, b) { 
    return b - a; 
})[0]; 
+0

+1 अच्छी तरह से किया गया! – karim79

+0

यह दिलचस्प है ... मुझे एक चीज पसंद है कि यह एक स्थानीय चर को दायरे में पेश नहीं करता है। –

+1

एकमात्र चीज जो मुझे पसंद नहीं है वह है 'parseInt', 'get',' map', 'sort' का उपयोग करना, जहां आप' .map() 'के लिए' प्रत्येक', 'parseInt' – RobertPitt

17

मुझे क्या करना होगा:

var max = 0; 
$(".blah").each(function(){ 
    num = parseInt(this.id.split("-")[1],10); 
    if(num > max) 
    { 
     max = num; 
    } 
}); 

अधिकांश लोगों को इस तरह से करना होगा।

+1

हाँ, पढ़ने के लिए बहुत आसान है। '[1]' के बजाय – EdH

+1

आप 'num = parseInt (this.id.split ('-') कर सकते हैं। पॉप(), 10);'। 'Var max = 0' के साथ-साथ 'var num;' घोषित करने का भी एक अच्छा विचार हो सकता है – martincarlin87

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