0

私は JSON を初めて使用し、JSON データをクエリして、その情報を適切な<div>ページに取り込む方法を見つけようとしています。私は Volusion を使用しているため、コードへのアクセスが制限されているため (主にサーバー側スクリプトから動的に生成されます)、いくつかの回避策を講じる必要があります。基本的に製品の表があり、製品コードを取得する唯一の方法は、それらの製品のアンカー タグで生成されている URL から取得することです (各製品には、たとえば / ProductDetails.asp?ProductCode=アロマ製品の場合)。製品コードを (URL の末尾から) 抽出し、それを productCode という名前の変数に設定する Javascript を作成しました。

私の JSON データでは、次のように設定しています。

[
    {
        "item": "aroma",
        "title": "Aromatherapy Oils",
        "price": "$10.00",
    },

    {
        "item": "ah-chairbamboo",
        "title": "Modern Bamboo Chair",
        "price": "$100.00",
    },
    {
        "item": "hc-mirror",
        "title": "Cordless LED Lighting Pivoting Vanity Mirror",
        "price": "$45.00",
    },
    {
        "item": "macfrc",
        "title": "French Macarons",
        "price": "$15.00",
    }
]

「aroma」がアイテムである JSON シートからタイトルを取得し、それを div の製品コンテナーに追加したい場合はどうすればよいでしょうか? 私のコードが製品コードを取得する方法は次のとおりです。

$(".v65-productDisplay a").each(function(){
    var productHref = $(this).attr("href");
    var productCode = productHref.substring(19,productHref.length);

これが機能するのは、productCodes を警告しており、それらがすべて正しいためです。

ページ上の各製品で実行されるように、この JSON クエリが明らかに各関数内にあることを望んでいます。英語で、「項目の値が JSON シートの製品コードと一致する場所に、そのタイトルと価格を出力したい」と言いたいです (はい、それは素晴らしい英語ではないことを理解しています...)。

それを照会する (そして値を警告する) 試みで最初に失敗したのは、こちらです。これは次の範囲内にあります。

$(".v65-productDisplay a").each(function(){
var productHref = $(this).attr("href");
var productCode = productHref.substring(19,productHref.length);

$.getJSON("/v/vspfiles/data/productinfo.js", function (data) {
            $.each(data, function () {
                  if (productCode = this['item'])
                     alert(this['price']); 
            });
        });

});

しかし、それはうまくいきませんでした。これが混乱している場合は申し訳ありませんが、私はそれを自分で解こうとしています。助けてくれてありがとう。


編集

以下のPSCoderの回答に続く新しい更新されたスニペットは、まだ正確には機能していません:

$.getJSON("/v/vspfiles/data/productinfo.js", function (data) {
        $.each(data, function (i,o) {
              if (productCode == o.item)
                 alert(o.price); 
        });
    });
4

1 に答える 1

0

あなたは多分このようにすることができます:

$.getJSON("/v/vspfiles/data/productinfo.js", function (data) {
            $.each(data, function () {
                  if (productCode.trim() === this.item)
                     console.log(this['price']); 
            });
        });
于 2013-04-22T23:55:29.457 に答える