Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从旧的HTMLDOM元素创建json_Javascript_Jquery_Regex_Json_Screen Scraping - Fatal编程技术网

Javascript 从旧的HTMLDOM元素创建json

Javascript 从旧的HTMLDOM元素创建json,javascript,jquery,regex,json,screen-scraping,Javascript,Jquery,Regex,Json,Screen Scraping,我正在做一个小jquery+greasemonkey,我正试图用它来重做一个内部工作站点的界面,我每天都要使用它,使它变得更有用 我已经到了提取页面并将其粘贴在div中的阶段。 我可以使用一些jquery选择器来识别im之后表的数据行 然而,它的旧的冗长的html,例如 <tr style="font-family:blaaa"> <td>1.</td> <td><a target="_BLANK" href="url

我正在做一个小jquery+greasemonkey,我正试图用它来重做一个内部工作站点的界面,我每天都要使用它,使它变得更有用

我已经到了提取页面并将其粘贴在div中的阶段。 我可以使用一些jquery选择器来识别im之后表的数据行

然而,它的旧的冗长的html,例如

  <tr style="font-family:blaaa">
     <td>1.</td>
     <td><a target="_BLANK" href="url=my bugs">13312800</a></td>
     <td sorttable_customkey="20110512">
       12-MAY-11
     </td>
     <td> Many more tds </td>
 </tr>

1.
2011年5月12日
更多的tds
我有另一个tr,其中包含我在某个阶段可能想用作json中的键的信息


刮取重要数据的最佳方法是什么?我希望它最终驻留在一些JSON中?正则表达式?模板???

您必须在此处执行一些递归操作,并从每个TR标记应用选择器

var recordset = [];
$('table.myTable tr').each(function(i,e) {
    var record = {
       id: $(e).find('td:nthchild(2) a').text(),
       url: $(e).find('td:nthchild(2) a').attr('href'), 
       date: $(e).find('td:nthchild(3)').text(), 
       comment: $(e).find('td:nthchild(4)').text()
    };
    recordset.push(record);
});

// Here you have complete recorset:
console.log(recordset);

// To output some JSON in a string
for (var i = 0; i < recordset.length; i ++) {
   alert($.param(recordset[i]));
}
var记录集=[];
$('table.myTable tr')。每个(函数(即,e){
var记录={
id:$(e).find('td:nthchild(2)a').text(),
url:$(e).find('td:nthchild(2)a').attr('href'),
日期:$(e).find('td:nthchild(3)').text(),
注释:$(e).find('td:nthchild(4)').text()
};
记录集。推送(记录);
});
//这里有完整的记录:
console.log(记录集);
//以字符串形式输出一些JSON
对于(var i=0;i

如果您想使用特定的DOM输出此数据,请尝试使用{{each}}标记来呈现项目列表,我发现它们非常易于使用,并且对于呈现JSON数据非常灵活。

我认为您的意思是刮取数据,而不是刮除数据。哈哈哈,是的,史蒂文坦克斯史蒂文这就是我想要的。