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