我正在访问一个返回格式为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
中嵌入的引用资源。
答案 0 :(得分:0)
所以我最终找到了一个解决方案,让我可以使用jquery的dom解析,但首先使用regex过滤输入/数据。这样我保持jquery的强大功能,只需要简单的正则表达式来过滤掉数据。
我发现只加载了图像源而不是锚标签上的href - 这很有道理 - 所以我最终更换了这样的apidata:
var dom = $('<div>').html(htmlData.replace(/<img[^>]+\>/ig, ""));
我仍然可以像往常一样查询dom而不会获得所有的404。