由于试图修改页面加载后通过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网址返回;
{
"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
}
}
答案 0 :(得分:0)
感谢包含数据的更新。
问题很简单-price
位于“ data”->“ quotes”->“ USD”对象的子属性中。它向下3层,它不是对象根的直接子级。通过查看JSON的结构,您可以清楚地看到这一点。我假设当您在PHP中使用此代码时,必须在结构的同一位置访问“价格”。
这是一个工作示例:
$(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中。