我对 JavaScript 有点陌生,想要从远程站点获取传感器数据并将其显示在本地页面的 DIV 元素中。 获取的数据有两个属性:名称和值。
当到达脚本中的行时:
document.getElementById('sensorValue').innerHTML = data.value;
控制台显示错误消息“无法读取未定义的属性(读取‘值’)”。
上面几行,脚本成功获取 data.value 并将其发送到 console.log。
我不知道如何使用innerHTML将data.value获取到DIV元素中。
<html>
<body>
<h2>fetch & innerHTML test</h2>
<div id='sensorValue'></div>
<script>
fetch("https://example.com/filename.php?apikey=1567477555629&setting1=1" )
.then( response => {
if( ! response.ok ) {
throw new Error("Could not fetch resource")
}
return response.json()
})
.then( data => console.log(data.value))
.then(data => {
document.getElementById('sensorValue').innerHTML = data.value;
})
.catch( error => console.error(error));
</script>
</body>
</html>
我更改了相关行以分配字符串而不是 data.value:
document.getElementById('sensorValue').innerHTML = "Test";
并且它成功地用 id='sensorValue' 填充了 DIV。
感谢您的见解!
此回调返回
undefined
:
.then(data => console.log(data.value))
所以在下一个回调中
data
将是undefined
:
.then(data => {
document.getElementById('sensorValue').innerHTML = data.value;
})
删除第一个操作,或合并这两个操作:
.then(data => {
console.log(data);
document.getElementById('sensorValue').innerHTML = data.value;
})
或者,如果您想将它们分开,请返回值:
.then(data => {
console.log(data.value);
return data;
})