下面的示例代码当前获取HTML页面,并尝试将其读入数组。 AJAX工作正常,我可以成功获得nodelist对象。是否有可能以某种方式将此页面读入数组而不是单个对象?最终我需要单独拉出这个数组的每个成员,因为我正在尝试下面的for循环:
$.ajax({
url: "/thePageToScrape.html",
dataType: 'text',
success: function(data) {
var elements = $("<div>").html(data)[0].getElementsByTagName("body");
for(var i = 0; i < elements.length; i++) {
var theText = elements.firstChild.nodeValue;
// Do something here
}
}
});
答案 0 :(得分:2)
如果你想要的就像你在评论中所说的那样,就是将NodeList变成一个数组:
elements = Array.prototype.slice.apply(elements);
这就是全部,真的。
答案 1 :(得分:1)
答案 2 :(得分:1)
如果您使用的是JQuery,则可以使用
获取正文正下方的每个节点的列表var elements = $(data).children("body").children();
或每个节点
var elements = $(data).children("body *");
然后你可以用
循环它们$.each(elements, function(index, value) {
var text = this.text()
//..do something with text
});