Javascript 将JSON输出添加到HTML ID
我使用jQuery读取JSON文件并将输出添加到HTML ID。到目前为止,一切都正常,但前提是我以后输出所有ID。 但是,如果我现在从输出中省略一个ID,例如,下面定义的所有ID将不再是输出。为什么会发生这种情况Javascript 将JSON输出添加到HTML ID,javascript,jquery,Javascript,Jquery,我使用jQuery读取JSON文件并将输出添加到HTML ID。到目前为止,一切都正常,但前提是我以后输出所有ID。 但是,如果我现在从输出中省略一个ID,例如,下面定义的所有ID将不再是输出。为什么会发生这种情况 $(document).ready(function() { function update_data() { $.getJSON("https://example.com/example.json", function(Data) {
$(document).ready(function() {
function update_data() {
$.getJSON("https://example.com/example.json", function(Data) {
// Example 1
document.getElementById('example1').innerHTML = Data.example1;
// Example 2
document.getElementById('example2').innerHTML = Data.example2;
// Example 3
document.getElementById('example3').innerHTML = Data.example3;
});
}
update_data();
setInterval(update_data, '30000');
});
https://example.com/example.json
在我的例子中返回如下内容:
{
"example1": 725725,
"example2": 47875,
"example3": 04257
}
如果我想输出所有3个,它就会这样做。但是如果我只想输出example1和example3,它只会输出example1。为什么呢
是否有效:
<div id='example1'>Load</div>
<div id='example2'>Load</div>
<div id='example3'>Load</div>
加载
负载
负载
仅适用于示例1:
<div id='example1'>Load</div>
<div id='example3'>Load</div>
加载
负载
您必须测试id
是否存在:例如,测试长度
function update_data() {
$.getJSON("https://example.com/example.json", function(Data) {
// Example 1
if($('#example1').length){
document.getElementById('example1').innerHTML = Data.example1;
}
// Example 2
if($('#example2').length){
document.getElementById('example2').innerHTML = Data.example2;
}
// Example 3
if($('#example3').length){
document.getElementById('example3').innerHTML = Data.example3;
}
});
}
但是如果我只想输出example1和example3,它只会输出example1
请向我们展示你的那部分代码,因为如果我运行你的代码,我已经创建了一个示例来显示问题。由于example2没有输出,example3也没有输出,原因不明。请参阅JSFIDLE中的错误innerHTML为null..
,因为example2不在dom中。是的。这正是问题所在。但为什么会发生这种情况?如果我只显示示例1和示例2,它会工作。但是为什么我不能只显示example1和example3呢?因为您正在引发一个运行时错误,脚本将在此时结束,您将尝试访问一个在此时并不存在的对象的innerHTML属性。