大家好,我正在使用此libhtml表转换为json array

http://lightswitch05.github.io/table-to-json/

有了这个,我的表就被转换成许多对象,并在chrome控制台中显示出来。

当我与表格位于同一页面上但我想将json移至另一页时,它可以工作。最初,我这样做是针对我的元素并使其进行转换,但没有任何运气吗?

$.get("http://support.jonar.com/support/default.asp?W2305", function(data) {
    var table_csv = $("table.testtable").html(data); //this gives me the entire html doc
    console.log(table_csv);
    var myjson = $(table_csv).tableToJSON();
});


这将返回整个文档.. table_csv。另外,当我将html <table></table>存储到变量中并运行$(table_csv).tableToJSON();时,我得到一个空值,我只会看到[]

谢谢你们!

最佳答案

您可以使用Range.createContextualFragment将数据转换为DocumentFragment

然后,您可以使用querySelector查找表,并使用jQuery将其获取以调用tableToJSON

var frag = document.createRange().createContextualFragment(data);
$(frag.querySelector('table')).tableToJSON();




更新

由于不起作用,可能是因为tableToJSON要求将元素放置在文档中才能起作用。因此,您可以执行以下操作:

var frag = document.createRange().createContextualFragment(data);
var tbl = frag.querySelector('table');
document.body.appendChild(tbl);
var myjson = $(tbl).tableToJSON();
tbl.parentNode.removeChild(tbl);


这样,您可以临时将表追加到文档中,以获取JSON,并在生成JSON后立即将其删除。如果该解决方案也不起作用,请发表评论。

10-06 05:04
查看更多