2017-04-06 127 views
1
var choices = [[]]; 
var i = 0; 
$('.type_multiple-choices').each(function() { 
    $('input[name^=choice]').each(function() { 
     choices[i].push($(this).val()); 
    }); 

    i++; 
}); 

我想要創建多維數組並將輸入數據推入到其中。創建並推送到多維數組

但是當我嘗試這樣,錯誤occures:

無法讀取的不確定

回答

3

的問題是,因爲choices[i]不存在財產「推」。您需要將數組推送到choices

想必您還想限制[name^=choice]選擇僅限於當前.type_multiple-choices元素中的選擇。對於您可以使用組合find()嵌套map()調用,就像這樣:

var choices = $('.type_multiple-choices').map(function() { 
 
    return [$(this).find('input[name^=choice]').map(function() { 
 
    return $(this).val(); 
 
    }).get()]; 
 
}).get(); 
 

 
console.log(choices);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="type_multiple-choices"> 
 
    <input name="choice1" value="choice1" /> 
 
    <input name="choice1" value="choice2" /> 
 
    <input name="choice1" value="choice3" /> 
 
</div> 
 
<div class="type_multiple-choices"> 
 
    <input name="choice1" value="choice4" /> 
 
    <input name="choice1" value="choice5" /> 
 
    <input name="choice1" value="choice6" /> 
 
</div> 
 
<div class="type_multiple-choices"> 
 
    <input name="choice1" value="choice7" /> 
 
    <input name="choice1" value="choice8" /> 
 
    <input name="choice1" value="choice9" /> 
 
</div>

+0

非常感謝您!有用。 – Nevermore