来自其他URL的HTML表到JSON

时间:2015-10-05 19:53:34

标签: javascript jquery html json ajax

嘿伙计们,我正在使用此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();时,我得到一个空值我只看到[]

谢谢你们!

1 个答案:

答案 0 :(得分:1)

您可以使用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后立即将其删除。如果该解决方案不起作用,请发表评论。