-2

我正在尝试将此加载​​的 DOM 转换为我可以使用的数组格式。

<div>
    <div>[a image]</div>
    <div>
        <p class="ab">text 1</p>
        <p class="bc">text 2</p>
    </div>
</div>
<div>
    <div>[a image]</div>
    <div>
        <p class="ab">text 1</p>
        <p class="bc">text 2</p>
    </div>
</div> 

我想读取这些 div 节点并将其转换为数组结构,如下所示:

var arrayObj = [{
“img”:“source”,“ab”:“text”,“bc”:“text”},{“img”:“source”,
“ab”:“text”,“bc” : “文本” }

有人可以告诉我如何实现这一目标吗?

谢谢

4

1 回答 1

1

循环遍历容器的children[]数组。对于每一个,找到图像和p标签。分配给一个新对象。将对象推入数组。

例子:

var out = [], container = document.getElementById('container'),
    c = container.children, l = c.length, i, obj, p, m, j;
for( i=0; i<l; i++) {
    obj = {};
    obj.img = c[i].getElementsByTagName('img')[0].src;
    p = c[i].getElementsByTagName('p');
    m = p.length;
    for( j=0; j<m; j++) obj[p[j].className] = p[j].firstChild.nodeValue;
    out[i] = obj;
}
// out
于 2012-12-01T01:03:02.483 回答