Помогите с циклом!
есть таблица в два столбца
<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, время: 13:57. |