首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我在这个jQuery API函数中做错了什么?

我在这个jQuery API函数中做错了什么?
EN

Stack Overflow用户
提问于 2018-01-21 19:00:18
回答 1查看 34关注 0票数 0

大家早上好,

我的jQuery代码目前有一些问题。我正在尝试使用cryptokickoff上的CoinMarketCap应用程序接口在我的网站上显示加密货币的统计数据。我知道如何显示它们,但是附加到我的列的操作不能正常工作。

我想要做的是:-我给出了一个数组,其中包含了我想从API中显示的密码-我想将每个密码附加到一行,该行从0 (var i)开始,每个密码加一

现在发生的情况是,所有的密码都被放入id为crypto-3的行中,我不知道这是如何发生的。

任何帮助都将不胜感激!

代码语言:javascript
复制
function fillGrid() {
	var cryptos = ["bitcoin","ethereum","ripple"];
	var i = 0;
	jQuery(cryptos).each(function(){
		jQuery.get( "https://api.coinmarketcap.com/v1/ticker/"+cryptos[i]+"/", function( data ) {
		    jQuery("#crypto-"+i).append(
		    	data[0].name);
		});
		i++;
	})
};
代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
  <title>Page Title</title>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.3/css/bootstrap.min.css" integrity="sha384-Zug+QiDoJOrZ5t4lssLdxGhVrurbmBWopoEl+M6BdEfwnCJZtKxi1KgxUyJq13dy" crossorigin="anonymous">
  <script src="http://code.jquery.com/jquery-latest.min.js"
        type="text/javascript"></script>
  <script src="api.js" type="text/javascript"></script>
</head>
<body>
  <div class="container-fluid">
    <div class="row">
      <div class="col-sm-12 col-md-6 col-lg-4" id="crypto-0">
      </div>
      <div class="col-sm-12 col-md-6 col-lg-4" id="crypto-1">
      </div>
      <div class="col-sm-12 col-md-6 col-lg-4" id="crypto-2">
      </div>
    </div>
    <div class="row">
      <div class="col-sm-12 col-md-6 col-lg-4" id="crypto-3">
      </div>
      <div class="col-sm-12 col-md-6 col-lg-4" id="crypto-4">
      </div>
      <div class="col-sm-12 col-md-6 col-lg-4" id="crypto-5">
      </div>
    </div>
  </div>
<script type="text/javascript">
  fillGrid();
</script>
</body>
</html>

EN

回答 1

Stack Overflow用户

发布于 2018-01-21 19:04:17

jQuery的.each通常用于遍历jQuery对象的成员(例如,如果我选择了jQuery("[id^=crypto"),我将使用.each来遍历这些成员)。使用普通的JS forEach循环进行迭代会更快。

这将在包装.get的函数的调用堆栈中维护eli的值,因此在触发回调之前迭代器不会发生变化。

代码语言:javascript
复制
function fillGrid() {
    var cryptos = ["bitcoin","ethereum","ripple"];
    cryptos.forEach(function(el, i)
    {
        jQuery.get("https://api.coinmarketcap.com/v1/ticker/" + el + "/", function(data)
            {
                jQuery("#crypto-" + i).append(data[0].name);
            }
        );
    });
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48366068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档