我有以下功能可以为测验生成国家名称。我想从数组中生成一个随机名称并将其显示在屏幕上,然后将其删除,这样我就没有重复的问题。有人建议按照我以前从未使用过的代码上显示的方式使用拼接,所以我不知道为什么它不能正常工作。你能帮我找出问题所在吗?谢谢!这是代码:
<div>
<div style="float:left">
<h1> <span id="questionnum"></span>. Can you locate <span id="countryquestion"></span> on the map?</h1>
</div>
<script type="text/javascript">
generateCountry();
function generateCountry(){
filenames = [ "Albania", "Andorra", "Armenia", "Austria", "Azerbaijan", "Belarus", "Belgium", "Bosnia and Herzegovina", "Bulgaria", "Croatia", "Cyprus", "Czech Republic", "Denmark", "Estonia", "Finland", "France", "Georgia", "Germany", "Greece", "Hungary", "Iceland", "Ireland", "Italy", "Latvia", "Liechtenstein", "Lithuania", "Luxembourg", "FYROM", "Malta", "Moldova", "Monaco", "Montenegro", "The Netherlands", "Norway", "Poland", "Portugal", "Romania", "Russia", "San Marino", "Serbia", "Slovakia", "Slovenia", "Spain", "Sweden", "Switzerland", "Ukraine", "United Kingdom" ];
filename = filenames.splice(Math.floor(Math.random()*filenames.length), 1);
document.getElementById('countryquestion').textContent = filename[0];
}
</script>
为路易斯编辑
你是对的..我刚刚用 getelementById 替换了 document.write,如下所示,我遇到了某种冲突。
document.getElementById('countryquestion').textContent = filename;
我使用这个函数和另一个函数来检查用户是否在地图上点击了正确的国家。通过添加您的代码,第一个国家名称出现,当我点击地图时,什么也没有发生。我没有得到任何回应,并且国家名称保持不变,因为该函数可能不会再次被调用。这是从 googlemaps 获取国家名称的功能。唯一应该发生的事情应该是将文件名(您的 randElement)与谷歌地图中的国家/地区进行比较,然后调用 generateCountry() 答案是否正确,但现在没有发生这种情况..为什么?
function getCountry(latLng) {
geocoder.geocode( {'latLng': latLng},
function(results, status) {
if(status == google.maps.GeocoderStatus.OK) {
if(results[0]) {
for(var i = 0; i < results[0].address_components.length; i++) {
if(results[0].address_components[i].types[0] == "country") {
if(results[0].address_components[i].long_name == **filename**) {
right();
generateCountry();
numQuestions();
updateScore();
countRights();
showProgress();
} else {
wrong();
updateLives();
generateCountry();
numQuestions();
showProgress();
}
}
}
}
else {
alert("No results");
}
}
else {
water();
}
}
);
}