javascript - 循环不按预期工作

标签 javascript jquery html css

http://codepen.io/abdulahhamzic/pen/aNexYj

我试图让这个循环在屏幕上正确地打印出十个结果,但我的循环似乎有问题,我无法弄清楚那是什么。在 Mozilla 上,我只得到屏幕上显示的第一个结果,似乎循环在第一次迭代后卡住了,在 Chrome 上我得到了十个结果,但看起来循环仍在运行,因为我不能确实对新创建的元素进行了任何样式设置,而且我仍然在页面上看到加载图标。谁能帮我解决这个循环?这是代码:

var url = "https://en.wikipedia.org/w/api.php?action=opensearch&format=json&search=aa&limit=10&callback=?";
$(document).ready(function(){
  $.getJSON(url, function(json){
    for (var i = 0; i < json[1].length; i++){
      document.write("<div><span class='header' style='color:red'>" + json[1][i] + "</span><br>" + json[2][i] + "</div><br>")
    }
  })
})    

最佳答案

The document.write() function is dangerous并且在不同的浏览器上有不同的行为。最好不要使用它。您可以拥有类似于下面的工作代码:

var url = "https://en.wikipedia.org/w/api.php?action=opensearch&format=json&search=aa&limit=10&callback=?";
$(document).ready(function(){
  $.getJSON(url, function(json){
    for (var i = 0; i < json[1].length; i++){
      $("body").append("<div><span class='header' style='color:red'>" + json[1][i] + "</span><br>" + json[2][i] + "</div><br>")
    }
  })
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

关于javascript - 循环不按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37421711/

相关文章:

javascript - Array.prototype.slice.call 在 getElementsByClassName 的重新创建中如何工作?

html - 如何让 SVG 中的 <image> 改变颜色?

javascript - 带验证的垂直条形图

javascript - 合并 2 个数组对象 typescript

jquery - 如何将 div 类插入到 JQuery 中?

javascript - PHP/MySql用户注册,如何让想要注册的用户不使用相同的用户名?

javascript - 如何根据 div 宽度将类应用于 div?

javascript - 使用php访问html子元素

javascript - 仅从网页请求元标记

jquery - 使用 Jquery 在鼠标悬停后反转鼠标移出的动画