使用jquery进行简单的解析 - 资源加载的问题

时间:2015-02-04 10:58:45

标签: jquery html dom

我正在访问一个返回格式为HTML的结果的api。这真是太糟糕了,因为我想要的只是数据。我的任务是将生成的HTML转换/解析为普通数据。

所以我的代码是这样的:

var htmlData = $('<div>').html(apidata);
var personData = htmlData.find('table.result tr');

虽然这很有效,但我最终得到了我需要的数据,jquery / browser一旦我将它包装在div中,就急于帮助解析这个apidata(我假设它正在创建一个dom元素并且浏览器处理其余的)导致了很多404。会发生什么,apidata包含href,src等所有指向外部和内部数据(图像,资源,脚本等)。一旦数据被包装在<div>加载开始。

我该怎么做才能停止解析链接。我只想加载dom结构,所以我可以使用jquery / sizzle查询引擎来获取我的数据。我不需要解析/加载apidata中嵌入的引用资源。

编辑:我试图避免使用正则表达式或类似解析。使用jquery的整个想法是简单而强大的解析html。

1 个答案:

答案 0 :(得分:0)

所以我最终找到了一个解决方案,让我可以使用jquery的dom解析,但首先使用regex过滤输入/数据。这样我保持jquery的强大功能,只需要简单的正则表达式来过滤掉数据。

我发现只加载了图像源而不是锚标签上的href - 这很有道理 - 所以我最终更换了这样的apidata:

var dom = $('<div>').html(htmlData.replace(/<img[^>]+\>/ig, ""));

我仍然可以像往常一样查询dom而不会获得所有的404。