2011-08-12 15 views
18

मैं उन सभी divs को लक्षित करना चाहता हूं जिनमें "सेक्शन" से शुरू होने वाली आईडी है; इन divs में से प्रत्येक के लिए, मैं प्रकार के इनपुट के बच्चे divs दिखाना चाहता हूं जो "पूर्व" से शुरू होता है।jquery selector: आईडी कुछ (कीवर्ड "सेक्शन") से शुरू होता है

//groups = $('div [id^=section]'); 
    groups = $('[id^=section]');  

    $.each(groups, function(key, group) { 
     alert(key + ': ' + group); 
     //inputs = group.('[id^=pre]'); 
    }); 


<div id="section-A1">  
    <input id="preBeginDtl" name="BeginDtlFields" value="" type="hidden"> 
    <input id="other" name="name2" value="" type="input"> 
    <input id="preGroup" name="GRP" value="AA" type="hidden"> 
</div> 
+1

ठीक है, तो यह करते हैं। समस्या क्या है? –

उत्तर

12

के बजाय एक आंशिक आईडी के लिए लग रही है, शायद आप divs को कक्षाओं "खंड" और "पूर्व" जोड़ना चाहिए? तो फिर तुम पर

groups = $('div.section div.pre'); 

क्या आप कर रहे हैं अनिवार्य रूप से एक वर्ग आधारित देखने है खोज कर सकते हैं, और कहा कि उचित तंत्र होगा। ,

$('[id^=section] > [id^=pre]') 

लेकिन मुझे नहीं लगता कि आप इनपुट तत्वों के लिए प्रकार विशेषता बदल सकते है:

+2

+1: ठीक है। –

12
groups = $('[id^=section]');  

$.each(groups, function(key, group) { 
    inputs = $(group).children('[id^=pre]'); 
}); 
41

इस चयनकर्ता के रूप में काम करेगा। आप शायद 'pre' इनपुट को टाइप = "टेक्स्ट" (टाइप = "छुपा" के बजाय) सेट करना चाहते हैं, और अपनी सीएसएस डिस्प्ले प्रॉपर्टी को किसी को भी सेट नहीं करना चाहते हैं। फिर इसे देखने के लिए jQuery शो() का उपयोग करें।

<div id="section-A1">  
    <input id="preBeginDtl" name="BeginDtlFields" value="" type="text" style="display:none"> 
    <input id="other" name="name2" value="" type="text"> 
    <input id="preGroup" name="GRP" value="AA" type="text" style="display:none"> 
</div> 

और

$('[id^=section] > [id^=pre]').show() 
संबंधित मुद्दे