0

下面的示例代码当前获取一个 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
      }
 }
});
4

3 回答 3

2

如果你想要的,就像你在评论中所说的,就是把 NodeList 变成一个数组:

elements = Array.prototype.slice.apply(elements);

就是这样,真的。

于 2013-07-26T15:16:12.313 回答
1

看起来$.parseHTML()方法完全符合您的要求:

描述:将字符串解析为 DOM 节点数组。

var arrElements = $.parseHTML(data);
于 2013-07-26T15:08:47.060 回答
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
});
于 2013-07-26T15:16:38.000 回答