2010-09-02 8 views
8

गतिशील उत्पादित पाठ आदानों की एक अज्ञात नंबर को देखते हुए में:।jQuery - कई खींचने के लिए सबसे आसान तरीका है (वैल) एक स्ट्रिंग

for (var i = 0; i < numInputs2Render; i++) { 
    collectEmails = collectEmails + '<input type="text" id="Email' + i + '" name="Email' + i + '">'; 
} 

मैं संयुक्त इनपुट मानों की एक अल्पविराम से परे स्ट्रिंग का उत्पादन करने की जरूरत है। क्या jQuery मुझे एक-चरण समाधान देता है या क्या मुझे स्ट्रिंग को मैन्युअल रूप से बनाने और मैन्युअल रूप से बनाने की आवश्यकता होगी? (यदि है, तो मैन्युअल रूप से ... तरीका बताया गया है कि लग रहा है?)

THX

उत्तर

23

आप इस तरह .map() उपयोग कर सकते हैं,:

var emails = $("input[name^=Email]").map(function() { return this.value; }) 
            .get().join(','); 

यह attribute-starts-with selector का उपयोग करता है आदानों को खोजने के लिए है, तो .map() पाने के लिए एक सरणी में मान आप .join() एक स्ट्रिंग में कर सकते हैं।

वे एक कंटेनर में हैं, तो एक <div id="Emails"> आप स्लिम चयनकर्ता $("#Emails input") की तरह कुछ करने के लिए नीचे, मैं नहीं यकीन है कि के लिए अपने मार्कअप देखे बिना कह सकते हैं सकता है कहते हैं, लेकिन एक कंटेनर चयनकर्ता के साथ कुछ भी यह और अधिक कुशल बनाने होंगे।

+2

+1 48 सेकंड तेजी;) एक वर्ग भी तत्व के लिए जोड़ा जा सकता है ... –

+0

@Felix - सहमत, या अगर हम थोड़ा और संदर्भ था, वे शायद सब वे कैसे 'दिया तो एक ही कंटेनर में हैं उत्पन्न किया जा रहा है। –

+0

वास्तव में - मैंने ब्रेवटी के लिए ओपी से 'वर्ग = ईमेल इनपुट' खींच लिया। यह जवाब कैसे बदल सकता है? - बहुत ज्यादा अधिमूल्यित! – justSteve

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