jquery

2012-12-19 25 views
8

के साथ गतिशील रूप से बनाए गए HTML तत्वों की गणना करें मैं वर्तमान दस्तावेज़ पर इनपुट की संख्या की गणना कर रहा हूं जिसमें मूल्य है। यह ठीक काम करता है, सिवाय इसके कि जब मैंने गतिशील रूप से अधिक इनपुट जोड़े हैं। मैं वहां मूल्य नहीं ले सकता।jquery

उदाहरण के लिए मैं

<input id="participant-1"/> 
<input id="participant-2"/> 
... 

गतिशील रूप

<input id="participant-15" /> 

मैं हर एक का मूल्य एक में पाश के लिए

for(var i =1 ; i <25; i++) 
{ 
    ...$('input#participant-' + i).val(); 
} 

की तरह अब मिलेगा बटन क्लिक करने के बाद बनाई गई हो सकता है जब मैं इन इनपुटों में से प्रत्येक के मूल्य की जांच करने के लिए लूप के लिए चलाता हूं तो यह केवल इनपुट के मान प्राप्त करता है जो गतिशील रूप से बनाया नहीं है। मैंने यहां अन्य प्रश्नों को देखा है और मैं अभी भी यह नहीं देख सकता कि .on() जैसे कुछ को मैं कैसे पूरा करने की कोशिश कर रहा हूं।

नई अनुसरण करें प्रश्न ठीक है, अब मुझे लगता है कि यह वह जगह है जहाँ मैं और अधिक कैसे .on का उपयोग करने के विषय में स्पष्टीकरण की जरूरत है।

मैं एक jsfiddle यहाँ हैं: JsFiddle example

जहाँ मैं नए तत्व बना सकते हैं और सभी पाठ बक्से के कलंक पर मैं गणना करने के लिए कैसे तत्वों के कई मूल्य है और यह लोग इन चाहते हैं। अब यह वर्तमान में धुंधला घटनाओं से प्रतिक्रिया देगा जो स्थिर थे।

<input class="textbox" id="participant-1"/> 
<input class="textbox" id="participant-2"/> 

और इसे पसंद मिलती है::

var values = []; 
$('.textbox').each(function(){ 
    values.push($(this).val()); 
}); 
console.log(values) 

और संपादित करें जवाब देने के लिए:

सिंटेक्स यह डायनामिक रूप से तैयार तत्वों

+0

पाते हैं कि आप तत्व आईडी इससे पहले कि आप एक एचटीएमएल टैग को जोड़ने की जरूरत नहीं है है। तो '$ ('# प्रतिभागी-' + i)' बेहतर है। –

+2

आपके पास उदाहरण हैं और कोड को ठीक काम करना चाहिए .. कृपया अधिक कोड जोड़ें।जब आप मानों का अनुरोध करते हैं तो आप डुप्लिकेट कैसे बनाते हैं। एक जेएसफ़ाइल बहुत अच्छा होगा .. –

+0

आपका ईवेंट बाइंडिंग कोड कहां है? –

उत्तर

8

यह एक आम वर्ग दें लिए काम नहीं करता होना चाहिए: $ (कंटेनर_सेलेक्टर) .on (event_type, target_selector, कॉलबैक)

JSFiddle Demo

$('.name').on('blur', 'input', calculate_total); 
+0

के साथ jsfiddle जोड़ा है क्या अंतर है? –

+0

$ ('# भागीदार-' + i) .val() कई बार –

+0

के लिए डोम को खोजने से बेहतर होगा, यह समस्या को कैसे हल करेगा? –

2

भी सीएसएस विशेषता चयनकर्ता के उपयोग पर विचार कर सके।

http://www.w3.org/TR/CSS2/selector.html#attribute-selectors

$("input[id|=participant]").each(function(){ 
      // something 
    }); 
+0

कृपया अद्यतन प्रश्न देखें मैंने अनुवर्ती प्रश्न – inspired

-1

एक वर्ग चयनकर्ता का उपयोग करना यहाँ समय बचेगा।

<input id="participant-1" class="participant"/> 
<input id="participant-2" class="participant"/> 

फिर एक सरल गिनती कॉल का उपयोग करें ...

var count = $('.participant').length 
alert ('You have ' + count + ' Counted Inputs'); 
//result is 2 

आशा है कि आप इस उपयोगी

+0

के साथ jsfiddle जोड़ा है यह डायनामिक रूप से जोड़े गए तत्वों के लिए काम नहीं करेगा। – Andy