【发布时间】:2018-04-30 21:49:33
【问题描述】:
自上周以来,这一直困扰着我。我正在制作一个网页,并且必须使用几次。但唯一的问题是,当我第二次使用该代码时,它不会显示城市名称输出。
这是我正在使用的代码。我做错了什么?
在这段代码中,当你运行它时,你会注意到它只会显示你的城市 1 次,第二个代码由于某种原因不会运行。我希望我清楚我在问什么。随意问任何问题。
这是脚本部分:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<script src="https://js.maxmind.com/js/apis/geoip2/v2.1/geoip2.js" type="text/javascript"></script>
<script>
var onSuccess = function(geoipResponse) {
var cityElement = document.getElementById('city');
if (cityElement) {
cityElement.textContent = geoipResponse.city.names.en || 'Unknown city';
}
var countryElement = document.getElementById('country');
if (countryElement) {
countryElement.textContent = geoipResponse.country.names.en || 'Unknown country';
}
};
var onError = function(error) {
window.console.log("something went wrong: " + error.error)
};
var onLoad = function() {
geoip2.city(onSuccess, onError);
};
// Run the lookup when the document is loaded and parsed. You could
// also use something like $(document).ready(onLoad) if you use jQuery.
document.addEventListener('DOMContentLoaded', onLoad);
</script>
这是身体部位:
<span id="country"></span> <span id="city"></span><span id="city"></span>
【问题讨论】:
-
"它只会显示你的城市 1 次,第二个代码由于某种原因不会运行" - 你如何运行它第二次,刷新页面?您能否在浏览器调试工具中查看流量以查看它第二次发出的请求?我假设您没有收到“出现问题”日志或脚本错误?
-
第二次我的意思是,CITY 的第二个代码不会第二次显示城市。它应该在页面上显示城市 2 次。
-
哦,我明白了:您有两个元素 id="city",并且您希望您的代码同时填充它们。问题是
document.getElementById('city');只会返回其中一个。您可以给他们不同的 ID 并同时填充它们,例如通过复制城市代码或在具有两个 ID 的循环中重复相同的代码,或者您可以使用不同的方式来查找城市的两个跨度,例如通过使用一个类和一个 getElementsBy- 调用将返回它们。