1

我想知道如何将具有特定 id 的 json 对象打印到 div?!我的 json 文件看起来像这样(缩短)并且由我使用的网店程序自动生成:

 "shipping":{
   "methods":{
     "core|13490|40699":{
       "id":"core|13490|40699",
       "price":{
         "price_excl":"0.0000","price_incl":"0.0000"
       }
     },
     "core|10292|40695":{
       "id":"core|10292|40695",
       "price":{
         "price_excl":"21.0084","price_incl":"25.0000"
       }
     }
   }
 },

我的脚本是这样的:

        window.onload = function(){
      $.getJSON('http://shop.com/cart/?format=json', function(data){
        $.each(data.cart.shipping.methods, function(index, method){
          $('<span></span>')
            .html('<strong>' + method.price.price_incl + '</strong>')
            .appendTo('.cart-shipping');
        });
      });
    };

我试图归档的是,仅显示 ID 为“core|10292|40695”的运输方式的运输价格。使用代码,我显示了两个运费。此外,我想知道如何将这些价格格式化为“真实”价格而不是 25.000。

正如您可能看到的,我对 JSON、jquery/ajax 很陌生,但我愿意学习。以上我通过搜索这个网站进行了归档,但我的问题是我真的无法弄清楚。

4

3 回答 3

1

您是否尝试过使用简单的 if 语句?例如:

if (index == "core|10292|40695") {
    $('<span></span>').html('<strong>' + method.price.price_incl + '</strong>').appendTo('.cart-shipping');
}

关于格式化货币,我相信有很多可用的信息

于 2012-05-28T01:57:07.150 回答
1

您要做的是替换以下块:

$.each(data.cart.shipping.methods, function(index, method){
  $('<span></span>').html('<strong>' + method.price.price_incl + '</strong>').appendTo('.cart-shipping');
});

和:

$('<span></span>').html('<strong>' + data.cart.shipping.methods['core|10292|40695'].price.price_incl + '</strong>').appendTo('.cart-shipping');

基本上,原始代码使用 $.each 结构迭代接收到的数据。在您的情况下,您不想遍历所有值,您已经知道想要哪个值。

另外,请注意建议您使用 if 语句的答案。这些答案仍将遍历整个对象,浪费资源。

于 2012-05-28T02:10:52.293 回答
-1

$('<span></span>').html("whatever")将创建一个包含此类数据的跨度,但该跨度尚未显示在页面上。

尝试在页面上有一个容器并在其中插入数据。

例如。

html: <div id="a"></div>

js: <script>$('#a').html('test');</script>

于 2012-05-28T01:57:44.280 回答