jquery api调用显示空白返回

问题描述 投票:0回答:1

在页面加载后,我一直试图通过jquery修改api调用来加载,其他人已帮助我,但无法让它工作。它是在PHP中加载的,我不确定语法是否正确。

http://staging3.cryptocritix.com - 看看ICO最近的交易小部件

<?php
    $args = array(
        'include' => "47,54,62,56,50,64,65",
        'max' => 10
    );
 if ( bp_has_groups( $args) ) :
        while ( bp_groups() ) : bp_the_group(); 
?>

<li>
    <?php
    $cmc_id = $setting['cmc_ticker'];
    $json_url = 'https://api.coinmarketcap.com/v2/ticker/'.$cmc_id.'/';
    ?>
<script>
$(document).ready(function() {
  $.ajax({
    url: '<?php echo $json_url ?>',
    dataType: 'json',
    success: function(data) {                                               
      let ico_roi = data.price;
      let div = document.createElement('div');
      $(div).html(ico_roi);
      console.log(ico_roi);
      $('#price-showing-after-page-load').html(div);
    }
  });
});
</script>
</li>

json url返回;

{
    "data": {
        "id": 1, 
        "name": "Bitcoin", 
        "symbol": "BTC", 
        "website_slug": "bitcoin", 
        "rank": 1, 
        "circulating_supply": 17244475.0, 
        "total_supply": 17244475.0, 
        "max_supply": 21000000.0, 
        "quotes": {
            "USD": {
                "price": 7185.30010797, 
                "volume_24h": 4157028720.19653, 
                "market_cap": 123906728079.0, 
                "percent_change_1h": -0.06, 
                "percent_change_24h": 2.22, 
                "percent_change_7d": 6.79
            }
        }, 
        "last_updated": 1535841206
    }, 
    "metadata": {
        "timestamp": 1535840724, 
        "error": null
    }
}
jquery html json ajax api
1个回答
0
投票

感谢包含数据的更新。

问题很简单 - price位于“data” - >“quotes” - >“USD”对象的子属性中。它是3层,它不是对象根的直接子。通过查看JSON的结构,您可以清楚地看到这一点。我假设当您在PHP中使用此代码时,您必须在结构中的相同位置访问“price”。

这是一个有效的演示:

$(document).ready(function() {
  $.ajax({
    url: 'https://api.coinmarketcap.com/v2/ticker/1/',
    dataType: 'json',
    success: function(response) {
      $('#price-showing-after-page-load').html(response.data.quotes.USD.price);
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="price-showing-after-page-load">

</div>

注:我已将根对象重命名为“响应”,以便将其与“数据”区分开来,“数据”是该对象的属性。

我也简化了一点 - 除非你有一些CSS来改变它的风格,所以真的没有必要创建一个新的div只是为了保持价格值。在我的代码中,我将它直接插入到现有的div中。

© www.soinside.com 2019 - 2024. All rights reserved.