在getJSON之后构建HTML在Safari中有效,但在Chrome或Firefox中无效
Constructing HTML after getJSON works in Safari but not in Chrome or Firefox
嗨,我实际上是一个使用javascript和html/css的新手。
我不明白为什么我的剧本适用于safari,但不适用于chrome和firefox。。。有什么想法吗?
编辑:铬和萤火虫中的ul和li元素都没有显示。。。此外,以前的警报也不起作用。我会检查控制台中的错误,并再次编辑文章
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<div id="patients" style="text-align:center">
</div>
<script type="text/javascript">
$.getJSON("http://www.url.com/json",
function(data) {
var items = [];
alert(data[1].patient);
alert(data[1].hr);
$.each(data, function(index, val) {
items.push('<li id="' + index + '">' + val.patient + '<div style="display: none" id="'+val.patient+'"></div></li>');
});
$('<ul/>', {
'class': 'my-new-list',
html: items.join('')
}).appendTo('#patients');
});
</script>
</body>
</html>
您必须了解的第一件事是javascript在页面上执行的时间。
因此,在您发布的代码中,浏览器首先加载jquery库。当它遇到您的<script>
标记时,它会尝试执行$.getJSON()
函数。
在您的脚本中,json请求成功完成后,它将尝试通过向#patients
添加生成的html来修改DOM。这在100%的情况下都不起作用,因为你不能保证浏览器已经渲染了#患者。
您应该首先将javascript代码包装在一个只在页面加载后执行的包装器中。
这可以通过几种方式实现。这些是jQuery特定的方法,因为这就是您正在使用的方法。
$(document).ready(function(){
//your code
});
或者:
$(function(){
//your code
});
本地javascript代码看起来像:
document.addEventListener('load', function(){
//your code
}, false);
我建议使用一种jQuery方法。
作为附加提示,您不需要将type="text/javascript"
放在脚本标记中。所有浏览器都知道script标记的意思是javascript。幸运的是,我们已经远远超过了旧时代的各种坏版本的Internet Explorer。
相关文章:
- 滚动在Chrome中有效,但在Firefox或IE中无效
- jQuery自动完成在Firefox中运行良好,但在Chrome中则不然
- Javascript的某些部分在Chrome中不起作用,但在其他浏览器中可以完美工作
- Javascript下载在firefox中停止,但在Chrome中有效
- 以下颜色更改功能在IE9和Firefox中运行良好,但在早期的IE或Chrome中则不然
- Javascript'元素'在ie中未定义,但在chrome和firefox中运行良好
- javascript代码,用于删除firefox中的空白,但在IE和chrome中无法正常工作
- 这个jQuery代码在Mozilla上运行良好,但在Chrome,Opera,Safari上则不然
- 火狐中的多个问题,但在 chrome 中工作正常,没有一个问题
- 在Firefox中工作正常,但在Chrome中不能
- trigger('create') 在 Chrome 中正确呈现,但在 Android 模拟器中无法正确呈现
- Javascript正则表达式在IE中失败,但在Chrome和Edge中工作
- 引导导航选项卡在小提琴中工作,但在使用 Chrome 打开时则不工作
- 如何调试遗留的javascript代码(适用于IE,但在Google Chrome中不正常)
- Javascript键码在Firefox中不起作用,但在chrome中运行良好
- 在Rails中使用remote:true在Chrome中有效,但在Safari中无效——从js.erb文件调用succe
- 输入类型的图像在Internet Explorer中不起作用,但在Chrome和Firefox中起作用
- 聚合物准备在IE11上启动,但在Firefox或Chrome上不启动
- 使用量角器双击在chrome中效果良好,但在firefox中不起作用
- jQuery .on()方法不工作在Chrome(但在IE &FF)