Javascript - 解析html字符串获取具有类X的每个元素并返回它们的数组

标签 javascript html arrays json parsing

嗨,我需要使用纯 Javascript(无 jquery)将大量元素文本内容放入 json 中,然后将它们放入 json 数组中。

例如来自:

<li class="asd">1</li>
<li class="asd">2</li>
<li class="asd">3</li>
<li class="asd">4</li>
<li class="asd">5</li>
<li class="asd">6</li>
<li>no</li>
<li>no</li>
<li>no</li>
<li>no</li>

我需要返回:

{[1,2,3,4,5,6]}

例如,一旦我获得了 html 页面字符串,我就通过 XHR 获得了 html 页面内容,如何解析它并将所有带有 class="asd" 的元素放入 json 数组中?

这是我获取 html 字符串的地方:

    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4) {
            alert(xhr.responseText);
//here i don't know how to parse the html returned :( and put it into a json array
        }
    }
    xhr.open('GET', 'http://site.com/htmlpagecontent.html', true);
    xhr.send(null);

最佳答案

您可以通过创建一个虚拟 DOM 元素并将 html 字符串注入(inject)该元素来做到这一点。这将创建相应的节点层次结构,您可以使用 getElementsByClassName 进行过滤:

var div = document.createElement("div");
div.innerHTML = xhr.responseText;
var nodes = div.getElementsByClassName("asd");
var array = [];
for(var i=0; i<nodes.length; i++) { array.push(nodes[i].innerHTML); }

关于Javascript - 解析html字符串获取具有类X的每个元素并返回它们的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19068461/

相关文章:

在结构中创建指向结构的指针数组

javascript - 在 JavaScript 中发送 HTTP 请求以从 MongoDB 获取结果

javascript - 对 API 的 Vue.js GET 请求被 CORS 阻止

html - 具有可变间距的基于 UL 的液体水平菜单

php - 如何制作像gmail 和facebook 那样的交互式 uploader ?

java - 如何在方法中从数组中删除值?

javascript - 缺少形式参数 javascript

javascript - 在 Google Apps Script 上使用 Google Script API 获取开发者元数据

html - 使用运行其他页面的 WordPress 创建纯 html 主页 AMP

c++ - 如何初始化这个填充有&functionA, &functionB 的数组?