如何解决从 XML 获取数据并在 HTML 上显示 - 输入变量
我正在尝试从 xml 文件中获取数据并显示内部输入,但我需要从输入中获取参数。
此代码在单击按钮时有效,但返回带有参数 'sbbr'
的 xml 文件这是我的代码:
<script>
var icaocode = 'sbbr'
var client;
if (window.XMLHttpRequest) {
client = new XMLHttpRequest();
} else {
client = new ActiveXObject("Microsoft.XMLHTTP");
}
client.open('GET','https://mywebsite.com/api/?icaoCode=' + icaocode,true);
function buscarFunction() {
var xmlDoc = client.responseXML;
var heliponto = xmlDoc.getElementsByTagName("aisweb");
for (i = 0; i < heliponto.length; i++) {
data = heliponto[i].getElementsByTagName("name")[0].childNodes[0].nodeValue;
city = heliponto[i].getElementsByTagName("city")[0].childNodes[0].nodeValue;
org = heliponto[i].getElementsByTagName("rmkText")[0].childNodes[0].nodeValue;
}
document.getElementById('nome').value = data;
document.getElementById('cidade').value = city;
document.getElementById('org').value = org;
}
client.send();
</script>
<input id="icao"><button type="button" onclick="buscarFunction()">Buscar</button><Br>
<input id="nome"><br>
<input id="cidade"><br>
<input id="org">
我需要从这里获取这个参数:
<input id="icao"><button type="button" onclick="buscarFunction()">Buscar</button>
但没有填充变量icaocode,我试过这个:
var icaocode = document.getElementById('icao').value;
client.open('GET',true);
解决方法
在所有元素完成渲染后,尝试将 <script>
放在 <body>
标记下方。我认为发生的情况是 document.getElementById('icao')
返回 null,因为还没有 ID 为 icao
的元素。
我修复了,找到了解决方案。
只需要添加函数 onload
并将所有代码放入主函数中,如下所示:
<input id="icao"><button type="button" onclick="buscarFunction()">Buscar</button><Br>
<input id="nome"><br>
<input id="cidade"><br>
<input id="org">
<script>
function buscarFunction() {
var icaocode = document.getElementById('icao').value;
var client;
if (window.XMLHttpRequest) {
client = new XMLHttpRequest();
} else {
client = new ActiveXObject("Microsoft.XMLHTTP");
}
client.open('GET','https://mywebsite.com/api/?icaoCode=' + icaocode,true);
client.send();
client.onload = function () {
var xmlDoc = client.responseXML;
var heliponto = xmlDoc.getElementsByTagName("aisweb");
for (i = 0; i < heliponto.length; i++) {
data = heliponto[i].getElementsByTagName("name")[0].childNodes[0].nodeValue;
city = heliponto[i].getElementsByTagName("city")[0].childNodes[0].nodeValue;
org = heliponto[i].getElementsByTagName("rmkText")[0].childNodes[0].nodeValue;
}
document.getElementById('nome').value = data;
document.getElementById('cidade').value = city;
document.getElementById('org').value = org;
};
}
</script>
然后存储来自输入的变量:
var icaocode = document.getElementById('icao').value;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。