Помогите с циклом!
есть таблица в два столбца
<table> <tr> <td><input type="checkbox" value="23" checked/></td> <td><input type="text" value=" " id="proba"/></td> </tr> <tr> <td><input type="checkbox" value="45" checked/>,<input type="checkbox" value="66" checked/>,<input type="checkbox" value="77" checked/></td> <td><td><input type="text" value=" " id="proba"/></td></td> </tr> </table> надо чтобы скрипт проходил циклом по tr и записывал данные в массив ввиде:{ nomer_stroki:1, valcheck:23, valinp:значение поля инпута, nomer_stroki:2, valcheck:45,66,77, valinp:значение поля инпута, и тд... } я написал скрипт но он у меня выводит только по 1 значению
var Myarray={};
var inval=[];
$('table tbody tr').each(function(i) {
$(this).find('input:checkbox:checked').each( function(j) {
inval[j]=$(this).val();
Myarray[i]={
"id":i,
"valcheck":inval[j],
}
j++;
});
i++;
}) ;
Можете подсказать где ошибка в циклах. Почему он передает только последний элемент в тех строках где checkboxov БОЛЬШЕ 1. Я же поставил счетчик на этот случай. |
Прости сам не знаю :(
Но делаю такие циклы: if(var i=0; i<5; i++) |
И кстате как задать на этом форуме вопрос
|
Вы каждую итерацию второго each(который проходится по вложенным значениям) перезаписываете целиком Myarray[i], чего вы хотите?
Надо примерно так:
var Myarray={};
$('table tbody tr').each(function(i) {
Myarray[i]={
"id": i,
"valcheck": $(this).find('input:checked').map( function(j) {
return $(this).val();
}).get().join(',') ,
}
});
|
| Часовой пояс GMT +3, время: 17:56. |