0

次の配列があります。

[searchEngineOrder] => Array
        (
            [0] => keyword
            [1] => Google
            [2] => Yahoo
            [3] => Bing/MSN
        )

      [Datagrid] => Array
        (
            [Brand] => Array
                (                    
                    [1] => Array
                        (
                            [keyword] => About Jetwing Hotels Sri Lanka
                            [Google] => 1
                            [Yahoo] => 1
                            [Bing/MSN] => 1
                        )

                    [2] => Array
                        (
                            [keyword] => Dining at Jetwing Kurulubedda
                            [Google] => 1
                            [Yahoo] => 1
                            [Bing/MSN] => 1
                        )
           )       ) 

これはphp配列です。(私はjsonエンコーディングを使用します)

今、私はテーブルを作成したいと思います。次のコードを使用しました。

var headers = data.searchEngineOrder;

        var trs = '<tr><td>Brand</td></tr>';

        var brands = data.Datagrid.Brand;

        for (x in brands) {
            trs += '<tr>';
            for (y in headers) {                    
               // trs += '<td>'+ brands[x].keyword +'</td>';  This is work               
               trs += '<td>'+ brands[x].headers[y] +'</td>';  //This is not work    
            }
            trs += '</tr>';
        }

        $('#keyword-table tbody').html(trs);

上記のようにコード brands[x].keywordまたはbrands[x].Googleは機能しています。しかし、キーワードまたはグーグルを変数として使用した場合、それは機能しません。

私を助けてください。どうすればいいですか?

4

2 に答える 2

0

探しているのは、文字列で囲まれた表記です。

brands[x]["keyword"]

JavaScriptでは、次の2つの方法でオブジェクトのプロパティ(オブジェクトのプロパティ)にアクセスできます。

  1. ドット表記とリテラルプロパティ名を使用します。例:foo.property

  2. 括弧で囲まれた表記と文字列プロパティ名を使用します。例:foo["property"]

    この2番目のケースでは、文字列はリテラル文字列である必要はなく、変数参照を含む任意の式の結果である可能性があります。それで:

    var k = "keyword";
    var value = brands[x][k];
    
于 2012-11-23T12:06:13.570 に答える
0

必要なもの:

brands[x][headers[y]];

つまり、withキーを取得し、brandwithキーをx検索して、その名前をのプロパティの変数名として使用ます。headerybrand

于 2012-11-23T12:06:58.103 に答える