转换为可用的数组jquery

时间:2012-12-01 00:58:08

标签: javascript jquery arrays push

我正在尝试将此加载​​的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”:“text”}

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

由于

1 个答案:

答案 0 :(得分:1)

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

示例:

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