2013-06-05 3 views
0

Я использую многомерный набор входных элементов, такие как:многомерного элемент массива проверка

<input value="0" name="Base_fare[23][0]" onchange="javascript:basechanged(23,0)" type="text" id="Base_fare[23][0]" class="imputText2"/> 
<input value="0" name="Base_fare[24][0]" onchange="javascript:basechanged(24,0)" type="text" id="Base_fare[24][0]" class="imputText2"/> 
<input value="0" name="Base_fare[25][0]" onchange="javascript:basechanged(25,0)" type="text" id="Base_fare[25][0]" class="imputText2"/> 
<input value="0" name="Base_fare[23][15]" onchange="javascript:basechanged(23,0)" type="text" id="Base_fare[23][15]" class="imputText2"/> 
<input value="0" name="Base_fare[24][15]" onchange="javascript:basechanged(24,0)" type="text" id="Base_fare[24][15]" class="imputText2"/> 
<input value="0" name="Base_fare[25][15]" onchange="javascript:basechanged(25,0)" type="text" id="Base_fare[25][15]" class="imputText2"/> 
<input value="0" name="Base_fare[23][16]" onchange="javascript:basechanged(23,0)" type="text" id="Base_fare[23][16]" class="imputText2"/> 
<input value="0" name="Base_fare[24][16]" onchange="javascript:basechanged(24,0)" type="text" id="Base_fare[24][16]" class="imputText2"/> 
<input value="0" name="Base_fare[25][16]" onchange="javascript:basechanged(25,0)" type="text" id="Base_fare[25][16]" class="imputText2"/> 

я сохранил значение в массив с помощью:

var Base_fare = new Array(3); 
Base_fare[23] = new Array(4); 
Base_fare[23][0]=parseFloat(document.getElementById('Base_fare[23][0]').value); 
Base_fare[23][15]=parseFloat(document.getElementById('Base_fare[23][15]').value); 
Base_fare[23][16]=parseFloat(document.getElementById('Base_fare[23][16]').value); 
Base_fare[23][17]=parseFloat(document.getElementById('Base_fare[23][17]').value); 
Base_fare[24] = new Array(4); 
Base_fare[24][0]=parseFloat(document.getElementById('Base_fare[24][0]').value); 
Base_fare[24][15]=parseFloat(document.getElementById('Base_fare[24][15]').value); 
Base_fare[24][16]=parseFloat(document.getElementById('Base_fare[24][16]').value); 
Base_fare[24][17]=parseFloat(document.getElementById('Base_fare[24][17]').value); 

, как индекс был динамичным генерируется с PHP для каждой петли- так что я должен использовать $.each

$.each(Base_fare, function(key, value) { 
    alert(key); 
    }); 

, но она не возвращает 23 24 она возвращается 1.2.3, как, что мне нужно, чтобы подтвердить эти находки

то, что я хочу сделать, это сумма вещь как этот

$.each(Base_fare, function(key, value) { 
     $.each(Base_fare[key], function(key2, value2) { 
    alert(key2 + ':' + value2); 
    }); 
    }); 

, так что я могу получить каждый значение элемента для его манипулирования и проверки полей, но оно не работает.

может ли кто-нибудь дать мне какое-либо решение или альтернативное решение.

+0

является его возвращение 1,2,3 или 0,1,2,3 ...? И если вы предупреждаете ключ, он предупреждает о самом значении, которое было бы, например, запятым: 'parseFloat (document.getElementById ('Base_fare [23] [0]'). Value)' s? –

+1

Использовать 'alert (key)'? – Bergi

+0

спасибо за то, что поймал мою ошибку по этому вопросу, на самом деле я поставил, что это с предупреждением (kay); то, что я хочу сделать, это суммирование вроде этого $ .each (Base_fare, function (key, value) { \t \t $ .each (Base_fare [key], function (key2, value2) { alert (key2 + ':' + значение2); \t}); }); –

ответ

0

но не возвращает 23 24 она возвращается 1,2,3 так

JQuery-х each() Переберет массив, используя for петли до массива length, точно так:

// actual jQuery's each() code 
var i = 0, isArray = isArraylike(obj); 
... 
if (isArray) { 
    for (; i < length; i++) { // <------------------------------------ HERE 
     value = callback.call(obj[ i ], i, obj[ i ]); 

     if (value === false) { 
      break; 
     } 
    } 
} else { 
... 

Таким образом, нет никакого способа, чтобы начать итерацию на индексы 23 и 24, как вы хотите. Ваш вариант тестирует индекс перед использованием:

$.each(Base_fare, function(key, value) { 
    if (value !== undefined) alert(value); 
}); 
Смежные вопросы