2013-01-07 11 views
13

को मैं एक सरणीJquery prevObject जोड़ रहा है: सरणी

में सभी तैरता योग करने के लिए चाहते हैं जब मैं क्रोम कंसोल में ऐसा

$("tr.project_hours").find("td.number").map(function(i,v) 
{return parseFloat($(v).attr("data-time")) 
}) 

मैं

[0, 0, 0, 0, 0, 0, 0] 

यह क्या है मुझे

पर, लेकिन मेरे कोड में मेरे पास $ ("tr.project_hours") है और मैं उन्हें अलग से जोड़ना चाहता हूं। तो, मुझे क्या करना

$("tr.project_hours").each(function(){ 
    row = $(this).find('td.total') 
    row.html(sumInputsIn($(this).find("td.number").map(function(i,v){ 
    return parseFloat($(v).attr("data-time"))}))); 
    }) 

('td.total) स्तंभ जहां परिणाम प्रदर्शित किया जाना चाहिए है। समस्या यह है कि अंतिम कोड कंसोल

[0, 0, 0, 0, 0, 0, 0, prevObject: jQuery.fn.jQuery.init[7], context: <tr>] 

में परिणाम देता है तो परिणाम कुख्यात NaN है।

मुझे अपने सरणी में prevObject क्यों मिलता है? और इससे छुटकारा पाने के लिए मैं कैसे प्रतिक्रिया कर सकता हूं?

+1

और अपने डेटा क्या हैं? –

+0

दूसरे शब्दों में, हमें HTML का नमूना दिखाएं। – LarsH

उत्तर

2

यह अपेक्षित परिणाम बाहर ले जाने चाहिए:

$("tr.project_hours").each(function(index, element) { 
    var row = $(this).find('td.total'); 
    var total = 0; 
    $(this).find("td.number").each(function (index, element) { 
     total += parseFloat($(v).attr("data-time")); 
    }); 
    row.html(total); 
}); 

jQuery map प्रदर्शन for (item in array) अगर आप उन कुंजियों को हो रही है जो जाहिरा तौर पर hasOwnProperty() द्वारा फ़िल्टर नहीं करती। इस मामले में आपको लगता है कि तर्क खुद को लिखने की जरूरत है।

+0

jQuery के लिए एक बेहतर समाधान के लिए steveukx का जवाब देखें इन प्रोप – chris

32

एक jQuery संग्रह पर map पर कॉल करने का वापसी प्रकार एक और jQuery संग्रह है। आप नक्शे में इस्तेमाल किया समारोह का सिर्फ परिणाम उपयोग करना चाहते हैं, तो आप .toArray() का उपयोग करने के बजाय अंतर्निहित सरणी वापस जाने के लिए की जरूरत है:

var numbersArray = $("tr.project_hours").find("td.number").map(function(i,v) 
    {return parseFloat($(v).attr("data-time")) 
}).toArray(); 
+0

जोड़कर यह सभी tr.project_hours तालिका पंक्तियों की एक लंबी सरणी बनाता है। मुझे उन्हें –

+0

अलग करने की ज़रूरत है, मुझे यह जवाब है कि आप 'jQuery.fn.map' का उपयोग करने के परिणामस्वरूप' prevObject' क्यों देख रहे हैं। – steveukx

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