2013-02-13 37 views
7

सबसे पहले, मुझे मेरी बुरी अंग्रेजी के लिए क्षमा करें।JQuery - पाठ के साथ पाठ को कैसे जोड़ना है?

मैंने विभिन्न विधियों का प्रयास किया है लेकिन अभी तक कोई भाग्य नहीं है।

मैं .each() विधि के साथ ऑब्जेक्ट्स की एक श्रृंखला वापस कर रहा हूं।

मैं ऑब्जेक्ट से प्रत्येक मान के साथ इनपुट फ़ील्ड के "मान" विशेषता को पॉप्युलेट करना चाहता हूं। मुझे PHP के समान काम करने का कोई तरीका नहीं मिला। =

कोई भी विचार बहुत अच्छा होगा!

$.each($("input[type='checkbox']:checked"), function(){ 
     var data = $(this).parent().parent().find("td:eq(1)"); 
     $("#login").val(data.text()); 
    }) 

उत्तर

5
var c = ''; 
$.each($("input[type='checkbox']:checked"), function(){ 
    var data = $(this).parent().parent().find("td:eq(1)"); 
    c += data.text(); 
}) 
$("#login").val(c); 

तुम भी पाश में इस के लिए इस्तेमाल किया जा सकता था:

यहाँ मेरी कोड है

$("#login").val($("#login").val(c)+data.text()); 

लेकिन मैं व्यक्तिगत रूप से डोम में परिवर्तनों को न्यूनतम करने के लिए पसंद करते हैं।

ध्यान दें कि parent().parent() जैसे ट्रैवर्सल का उपयोग रखरखाव की समस्याओं का कारण बनता है। आपके मामले में आप शायद

var data = $(this).closest('tr').find("td:eq(1)"); 

उपयोग करती हैं इसलिए कि कोड एक span या किसी अन्य तत्वों भविष्य में अपने इनपुट लपेटता अगर तोड़ने नहीं होगा सकता है।

+0

आपको बहुत बहुत धन्यवाद! यह वास्तव में अच्छी तरह से काम करता है! – skytorner

12

आप map() का उपयोग कर सकते हैं। आप delimiter वर्ण को join() पर अलगाव को अलग करने के लिए पास कर सकते हैं।

text = $("input[type='checkbox']:checked").map(function(){ 
    return $(this).parent().parent().find("td:eq(1)");   
}).get().join(); 

$("#login").val(text); 
+1

यह बहुत अधिक सुरुचिपूर्ण है और स्वीकार्य उत्तर होना चाहिए। – kontur