私は 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);
});
});