2

嗨,我需要使用纯 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);
4

1 回答 1

4

您可以通过创建一个虚拟 DOM 元素并将您的 html 字符串注入到该元素中来做到这一点。这将创建相应的节点层次结构,您可以使用以下内容进行过滤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); }
于 2013-09-28T15:34:22.567 回答