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>")
}
})
})
答案 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>