1

我正在从公共域网站 (cancer.gov) 上抓取内容,并且我想重新格式化标记,因为它在表格中的格式非常糟糕。我有 jQuery 供我使用,我只是想把它放到控制台中,这样我就可以将它复制并粘贴到 Vim 中。

我已经将要制作的td元素数组制作成h3's,但是当我尝试遍历它们并将它们包装在h3标签中时,我得到Error: NOT_FOUND_ERR: DOM Exception 8了 ,我相信这是找不到 DOM 元素,这是没有意义的。

看看我评论的小提琴

加分点:td' s 都是问题,我能想到的将它们拆分为数组索引的唯一方法是将它们拆分为?,这会删除输出中的问号。将它们放回原处的最佳方法是什么?

更新

如果您想查看该页面并在控制台中尝试操作,请点击此处

4

2 回答 2

1

创建一个 jQuery 对象并不会神奇地将它们变成 DOM 元素。


只需在 HTML 的大字符串上创建,并将其传递给 jQuery 构造函数:

var questions = $('selector here...').text().split('?');

questions = $('<h3>' + questions.join('?</h3><h3>') + '?<h3>' );

这是你的小提琴:http: //jsfiddle.net/M4Pn5/1/

于 2013-01-30T19:08:35.363 回答
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
于 2013-01-30T20:31:10.347 回答