将HTML NodeList读入数组

时间:2013-07-26 15:05:52

标签: javascript jquery html arrays parsing

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

3 个答案:

答案 0 :(得分:2)

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

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

这就是全部,真的。

答案 1 :(得分:1)

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

  

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

var arrElements = $.parseHTML(data);

答案 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
});