2013-04-22 52 views
0

我是JSON的新手,正試圖找到一種方法來查詢JSON數據,並將信息帶入我的頁面上合適的<div>。我使用Volusion,所以對代碼的訪問是有限的(它主要是從服務器端腳本動態生成的),所以我不得不做一些解決方法。基本上有一張產品表,獲得產品代碼的唯一方法是將其從產品的錨標籤上生成的URL中抓取出來(每個產品都設置了鏈接,例如/ ProductDetails.asp?ProductCode =芳香產品的香氣)。我寫了Javascript來提取產品代碼(從URL的末尾)並將其設置爲名爲productCode的變量。在'each'函數中用jQuery查詢JSON數據

在我的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", 
    } 
] 

如果我想做的只是從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); 
     }); 
    }); 

回答

0

你可以做這樣的可能:

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