2012-06-23 7 views
6

क्या किसी भी उपसर्ग "मेरा" और प्रत्यय "0-9" के साथ jQuery के साथ सभी आईडी का चयन करने का कोई तरीका है। इन $ ("# my $ 1-4") की तरह कुछ या क्या यह एक लूप के साथ बस संभव है?jQuery प्रत्यय के रूप में शब्द के साथ # आईडी का चयन करें और प्रत्यय के रूप में काउंटर

<div id="my1"/> 
    <div id="my2"/> 
    <div id="my3"/> 
    <div id="my4"/> 
    <div id="my5"/> 
+0

क्या आपको केवल ** आईडी ** चयनकर्ता की आवश्यकता है? वर्ग, नाम या डेटा चयनकर्ता का उपयोग क्यों न करें। अंतिम बार देखें http://stackoverflow.com/questions/2891452/jquery-data-selector इसके अलावा इस तरह के गुणक चयनकर्ता हैं http://api.jquery.com/attribute-contains-prefix-selector/ – m03geek

उत्तर

13

पहले विचार है, जो अच्छी तरह से काम करने लगता है:

$('div[id^="my"]').filter(
    function(){ 
     return this.id.match(/\d+$/); 
    }); 

JS Fiddle demo

ऊपर चयन सभी div तत्वों जिसका id शुरू होता है मूल्य my साथ, और फिर जिसका idभी संख्यात्मक वर्ण के साथ समाप्त होता है उन पर लौट आए तत्वों फिल्टर।

संदर्भ:

0

उपसर्ग भाग एक attribute starts-with चयनकर्ता के साथ आसानी से प्राप्त है:

$("div[id^=my]"); 

लेकिन वहाँ कोई चयनकर्ता कि आप पात्रों की श्रेणी निर्दिष्ट करने की अनुमति देगा है, इसलिए एक पाश शामिल होना होगा। मैं filter सुझाव है:

$("div").filter(function() { 
    return /^my\d$/.test(this.id); 
}); 
0

मान लें कि आप उस के साथ "मेरे", तुम कर सकते हो शुरू तत्वों के लाखों लोगों की जरूरत नहीं है:

$('[id^=my]').filter(function() { return this.id.matches(/\d/) && this.id.length == 3 }) 

यह एक आईडी के साथ शुरू की है कि सभी तत्वों को पकड़ लेता है "मेरे", एक संख्या शामिल , और केवल 3 वर्ण लंबा हैं (इसलिए "my54" मेल नहीं खाएगा लेकिन "my6" होगा)

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