我正在从公共域名网站(cancer.gov)上抓取内容,我想重新格式化标记,因为它在表格中格式很糟糕。我可以使用jQuery,我只是想把它放到控制台中,这样我就可以将它复制并粘贴到Vim中。
我已经将td
元素的数组放到h3
中,但是当我尝试遍历它们并将它们包装在h3
中时标签,我得到Error: NOT_FOUND_ERR: DOM Exception 8
,我相信找不到DOM元素,这没有任何意义。
查看我评论过的fiddle。
奖励积分:td
都是问题,而我能想到的将它们分成数组索引的唯一方法就是将它们拆分为?
,这样就会切出问号在输出中。将它们放回去的最佳方法是什么?
如果你想查看页面并在控制台中尝试一下,那就是here。
答案 0 :(得分:1)
创建一个jQuery对象并不会神奇地将它们变成DOM元素。
只需在大字符串HTML上创建,然后将其传递给jQuery构造函数:
var questions = $('selector here...').text().split('?');
questions = $('<h3>' + questions.join('?</h3><h3>') + '?<h3>' );
这是你的小提琴:http://jsfiddle.net/M4Pn5/1/
答案 1 :(得分:0)
您可以简单地将内容抓取到数组中,然后使用数组执行任何操作,而无需担心问号。
var myarr = $('#Table1').find('tr:even');//even to exclude the hr rows
这里我展示了你可以做的一些事情:
var myQuest = myarr.find('td:eq(0)').map(function () {
return $(this).html();
});//questions
var myAns = myarr.find('td:eq(1)').map(function () {
return $(this).html();
});// answers
//process the arrays:
for (var i = 0; i < myQuest.length; i++) {
alert(myQuest[i]+ myAns[i]);
};
myarr.find('td:eq(0)').wrap('<h3>');//wrap the questions