HTML-таблица? Мол, все содержимое <td>
в двумерном массиве?
var tbl = $('table#whatever tr').map(function() {
return $(this).find('td').map(function() {
return $(this).html();
}).get();
}).get();
Затем просто используйте $ .json (или любую другую нужную вам библиотеку), чтобы превратить это в строку JSON.
edit & mdash; переписан для использования нативного ( шим здесь ) .map()
из прототипа массива:
var tbl = $('table#whatever tr').get().map(function(row) {
return $(row).find('td').get().map(function(cell) {
return $(cell).html();
});
});
Функция jQuery .map()
имеет «особенность» сглаживания возвращаемых массивов в массиве результатов. То есть, если функция обратного вызова возвращает значение, которое само является массивом, то вместо того, чтобы возвращаемый массив стал значением одна ячейка результата .map()
, каждый из его элементов добавляется к результату.
Это может работать с использованием исходной версии jQuery и просто оборачивать дополнительный массив вокруг возвращаемых значений.