2013-04-22 1 views
0

Я новичок в JSON и пытаюсь найти способ запроса данных JSON и довести информацию до подходящего <div> на моей странице. Я использую Volusion, поэтому доступ к коду ограничен (он в основном динамически генерируется из сценария на стороне сервера), поэтому мне нужно сделать пару обходных решений. В принципе, есть таблица продуктов, и единственный способ получить код продукта - это захватить его из URL-адреса, который создается на привязанных тегах для этих продуктов (каждый продукт настроен со ссылкой, прикрепленной к, например,/ProductDetails.asp? ProductCode = аромат для ароматического продукта). Я написал Javascript для извлечения кода продукта (с конца URL) и установки его в переменную с именем productCode.Запрос данных JSON с jQuery в функции «каждый»

В моих данных в формате 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']); 
      }); 
     }); 

});

Это не сработало. Извините, если это сбивает с толку, я пытаюсь распутать его сам. Большое спасибо за любую помощь.


EDIT

Вот новый обновленный фрагмент следующий ответ 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']); 
      }); 
     }); 
Смежные вопросы