-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 に答える