循环不能按预期工作

时间:2016-05-24 18:55:09

标签: 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>")
    }
  })
})    

1 个答案:

答案 0 :(得分:3)

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>