Как получить элемент входного имени с многомерным массивом

#javascript #jquery #vue.js

#javascript #jquery #vue.js

Вопрос:

Мне нужно, чтобы элемент получал тот же многомерный массив по имени или идентификатору в jQuery в качестве переменной.

 <input type="text" id="minrange_1" placeholder="Minimum Range" name="range[][min]">
<input type="text" id="maxrange_1" placeholder="Maximum Range" name="range[][max]">
<input type="text" id="rates_1" placeholder="Rates ($)" name="range[][rate]" >
<input type="text" id="minrange_2" placeholder="Minimum Range" name="range[][min]">
<input type="text" id="maxrange_2" placeholder="Maximum Range" name="range[][max]">
<input type="text" id="rates_2" placeholder="Rates ($)" name="range[][rate]" >
 

Требуется вывод

 value = [minrange_value, mxarange_value, rate_value]
 

или

 vaulue = [
0 => {minrange=> minrange value, maxrange => mxarange_value, rate=>rate_value }
]
 

Комментарии:

1. ванильный совет: document.getElementById("id").value

2. Повторяющиеся идентификаторы — плохая идея. Вместо этого используйте класс

3. Идентификатор не дублируется в уникальном

Ответ №1:

     var minvalue = jQuery("input[name='range[][min]']").map(function(){return jQuery(this).val();}).get();
    var maxvalue = jQuery("input[name='range[][max]']").map(function(){return jQuery(this).val();}).get();
    var ratevalue = jQuery("input[name='range[][rate]']").map(function(){return jQuery(this).val();}).get();
var range = [];
for(var i=0; i<= minvalue.length;i  ){
    var r = []; 
    r['min'] = minvalue[i];
    r['max'] = maxvalue[i];
    r['rate'] = ratevalue[i];
    range.push(r);
}