1

ColdFusion 8 と jQuery 1.8 を使用しています。

データベースからいくつかの情報が出てきて、次のように div に取り込まれています。

<div class='SpecInfo' data-height='10' data-width='23' data-length='156'></div>
<div class='SpecInfo' data-height='20' data-width='21' data-length='159'></div>
<div class='SpecInfo' data-height='30' data-width='25' data-length='154'></div>
<div class='SpecInfo' data-height='40' data-width='27' data-length='155'></div>
<input type='button' id='GoButton' value='Go!'>

その情報を取り出して配列に入れ、CFC に渡す必要があります。データを収集する機能があります。次のようになります。

// SET VARS
$GoButton = $("#GoButton"),
    SpecArray = {
        Height: [],
        Width: [],
        Length: []
    };

// GO
var go = function() {
    var $SpecInfo = $(".SpecInfo"),
        SpecInfoLen = $SpecInfo.length,
        H, 
        W,
        L;
    for (i = 0; i < SpecInfoLen; i++) {
        var H = $SpecInfo.eq(i).data('height'),
            W = $SpecInfo.eq(i).data('width'),
            L = $SpecInfo.eq(i).data('length');
        // add H,W,L values to spec array
        SpecArray['Height'].push(H);
        SpecArray['Width'].push(W);
        SpecArray['Length'].push(L);
    }
    // stringify spec array
    // pass spec array to cfc
    alert(SpecArray['Height'].length);
}
$GoButton.click(go);

これにより、高さの配列、幅の配列、長さの配列が得られます。これは私が望むものではありません。私の情報はこのように整理されています

[10,20,30,40]
[23,21,25,27]
[156,159,154,155]

div ごとに、すべての属性を 1 か所にまとめたいと思います。私はこのようなものがもっと欲しい:

[10,23,156]
[20,21,159]
[30,25,154]
[40,27,155]

私は何を間違っていますか?アレイを整理するにはどうすればよいですか?

4

1 に答える 1

5

では、オブジェクトの配列ではなく、すべてのデータを 3 つの個別の配列に入れるのはなぜでしょうか?

それ以外の

    SpecArray['Height'].push(H);
    SpecArray['Width'].push(W);
    SpecArray['Length'].push(L);

使用する

    SpecArray.push( { 'height': H, 'width': W, 'length': L } );

これにより、次のようなオブジェクトの配列が生成されます。

[
 { 'height': 10, 'width': 23, 'length': 156 },
 { 'height': 20, 'width': 21, 'length': 159 },
 { 'height': 30, 'width': 25, 'length': 154 },
 { 'height': 40, 'width': 27, 'length': 155 }
]

SpecArrayただし、3 つの配列を含むオブジェクトとしてではなく、配列として初期化する必要があります。

于 2012-11-08T16:35:27.110 に答える