मुझे एक मूल सरणी के साथ समाप्त करने की आवश्यकता है जिसमें कई बाल सरणी हैं जो इसे अजाक्स पोस्ट के माध्यम से भेजने में सक्षम हैं।

मेरा एचटीएमएल:

<tr class="row">
    <td><input type="text" /></td>
    <td><input type="date" /></td>
    <td><input type="number /></td>
    <td><input type="number /></td>
</tr>
<tr class="row">
    <td><input type="text" /></td>
    <td><input type="date" /></td>
    <td><input type="number /></td>
    <td><input type="number /></td>
</tr>

मेरी जावास्क्रिप्ट:

var detail = new Array()
$("tr.line").each(function(){
    var row = new Array();
    $("tr.line input").each(function(){
        row.push(this.value);
    });
    detail.push(row);
});

लेकिन यह वह नहीं कर रहा है जो मुझे करने की आवश्यकता है

detail = array(
    row = array(
        text: ...,
        date: ...,
        number: ...,
        number: ...
    )
    row = array(
        text: ...,
        date: ...,
        number: ...,
        number: ...
    )
)
0
Jason Ayer 22 जिंदा 2017, 06:20
क्या आप इसका नमूना इनपुट प्रदान कर सकते हैं कि आप इसे कैसा दिखाना चाहते हैं? मुझे detail के अंदर डुप्लीकेटिंग कुंजियों के अलावा, इसमें कुछ भी गलत नहीं दिख रहा है।
 – 
Ohgodwhy
22 जिंदा 2017, 06:23
ओहगोडवि, नमूना ठीक ऊपर है। यह मेरे प्रश्न का अंतिम कोड ब्लॉक है।
 – 
Jason Ayer
22 जिंदा 2017, 06:25
आप कैसे चाहते हैं कि जेसन ऑब्जेक्ट कैसा दिखे?
 – 
Chetan
22 जिंदा 2017, 06:29
"tr.line" - ठीक है, आपके पास tr कक्षा line के साथ नहीं है - इसलिए आपको अपने कोड के साथ बहुत कुछ नहीं मिलेगा - शायद आपका मतलब "tr.row" था
 – 
Jaromanda X
22 जिंदा 2017, 06:39
what I need it to do - आपको वस्तुओं की एक सरणी होने के लिए पंक्तियों की सरणी की आवश्यकता है, न कि सरणियों की एक सरणी के लिए
 – 
Jaromanda X
22 जिंदा 2017, 06:41

1 उत्तर

सबसे बढ़िया उत्तर

आपका परिणाम row = Array(text: ...) किसी वस्तु के key: value जोड़े में बेहतर फिट बैठता है।
एचटीएमएल:

<tr class="line">
    <td><input name="text1" type="text" /></td>
    <td><input name="date1" type="date" /></td>
    <td><input name="number1" type="number /></td>
    <td><input name="number2" type="number /></td>
</tr>

जेएस:

var detail = [];
$("tr.line").each(function(){
    var row = {};
    $(this).find('input').each(function(){
        row[this.name] = this.value;
    });
    detail.push(row);
});

नतीजा:

detail = [
    {
        text1: ...,
        date1: ...,
        number1: ...,
        number2: ...
    }
]
2
Villa7_ 22 जिंदा 2017, 06:45
यह बात है!! आपको धन्यवाद!
 – 
Jason Ayer
22 जिंदा 2017, 06:53