我需要將表格行轉換爲JSON。將HTML表格轉換爲JSON
任何想法?我在這裏有這個代碼,但它不起作用。
function tableToJSON(tableID) {
return $(tableID + " tr").map(function (row) {
return row.descendants().pluck("innerHTML");
}).toJSON();
}
我需要將表格行轉換爲JSON。將HTML表格轉換爲JSON
任何想法?我在這裏有這個代碼,但它不起作用。
function tableToJSON(tableID) {
return $(tableID + " tr").map(function (row) {
return row.descendants().pluck("innerHTML");
}).toJSON();
}
function tableToJson(table) {
var data = [];
// first row needs to be headers
var headers = [];
for (var i=0; i<table.rows[0].cells.length; i++) {
headers[i] = table.rows[0].cells[i].innerHTML.toLowerCase().replace(/ /gi,'');
}
// go through cells
for (var i=1; i<table.rows.length; i++) {
var tableRow = table.rows[i];
var rowData = {};
for (var j=0; j<tableRow.cells.length; j++) {
rowData[ headers[j] ] = tableRow.cells[j].innerHTML;
}
data.push(rowData);
}
return data;
}
看起來像這樣:http://johndyer.name/html-table-to-json/ – 2012-07-10 21:15:15
@Awena作者應該被記入他們的工作。 – mikemaccana 2014-10-06 18:02:15
似乎被使用thead,tbody標籤的表破壞。 – backdesk 2014-12-04 11:14:54
嘗試$("#"+tableID + " tr")
代替。
您應該有所幫助:
<table id="answered">
<tbody>
<tr>
<td data-id="user.email">[email protected]</td>
<td data-id="meme.yodawg">Yo Dog! I Heard you liked answers, so I answered your question, with a method wrapped in a jQuery plugin!</td>
</tr>
</tbody>
</table>
的jQuery:http://encosia.com/use-jquery-to-extract-data-from-html-lists-and-tables/
瀏覽到此鏈接thorws this warning。 [![Screen Shot 2017-03-28 at 7.57.30 PM.jpg](https://s13.postimg.org/6km89ehpj/Screen_Shot_2017-03-28_at_7.57.30_PM.jpg)](https:// postimg .org/image/x5or4yk2r /) – lacostenycoder 2017-03-28 23:59:46
HTML兩者
(function($) {
$.extend($.fn, {
tableRowsToJSONWithFilter : function (filter) {
var tableSelector = this, item, attr, data, _JSON = [];
if (typeof(tableSelector) !== 'object') {
return new Error('Invalid tableSelect!');
};
$(tableSelector, 'tr').each(function(index, tr) {
item = {};
$('td', $(this)).each(function(index, td) {
attr = $(td).attr('data-id');
data = $(td).text();
if (attr !== undefined && data !== '' && filter && new RegExp(filter, 'i').test(attr)) {
item[attr] = data;
};
});
_JSON.push(item);
});
return _JSON;
}
})
})(jQuery);
用法:
$('#answered').tableRowsToJSONWithFilter('yodawg');
jsfiddle:http://jsfiddle.net/edwardhotchkiss/DzDXk/ – 2013-01-11 06:18:41
有用,幽默。太好了! – 2013-02-04 16:31:04
我並不滿意上述所有的解決方案,並最終寫我自己的jQuery插件來實現這一點。它與解決方案非常相似,但接受若干選項來自定義結果,例如忽略隱藏行,覆蓋列名和覆蓋單元格值。
可以在此處找到該插件以及一些示例,如果這更多是您的尋找:我https://github.com/lightswitch05/table-to-json
這一個工作:(我只有2條線在我的表,th和td)
function htmlToJson(table) {
var obj = {},
itemsLength = $(table.find('tbody tr')[0]).find('th').length;
for (i=0;i<itemsLength;i++) {
key = $(table.find('tbody tr')[0]).find('th').eq(i).text();
value = $(table.find('tbody tr')[1]).find('td').eq(i).text();
obj[key] = value;
}
return JSON.stringify(obj)
}
HTML表THEAD和TBODY:
function htmlTableToJson(table, edit = 0, del = 0) {
// If exists the cols: "edit" and "del" to remove from JSON just pass values = 1 to edit and del params
var minus = edit + del;
var data = [];
var colsLength = $(table.find('thead tr')[0]).find('th').length - minus;
var rowsLength = $(table.find('tbody tr')).length;
// first row needs to be headers
var headers = [];
for (var i=0; i<colsLength; i++) {
headers[i] = $(table.find('thead tr')[0]).find('th').eq(i).text();
}
// go through cells
for (var i=0; i<rowsLength; i++) {
var tableRow = $(table.find('tbody tr')[i]);
var rowData = {};
for (var j=0; j<colsLength; j++) {
rowData[ headers[j] ] = tableRow.find('td').eq(j).text();
}
data.push(rowData);
}
return data;
}
我會尋找一種方法來做到這一點,但爲什麼? HTML表格是顯示數據的一種方式,而不是存儲它。 – bigblind 2011-06-07 21:31:28