我正在寻找一种在下拉菜单中显示所有国家列表的方法。是否有PHP或jQuery的简短代码可以在我的网页上获取国家列表?谢谢。
我正在寻找一种在下拉菜单中显示所有国家列表的方法。是否有PHP或jQuery的简短代码可以在我的网页上获取国家列表?谢谢。
最新答案。
支持Intl的浏览器现在可以以您选择的语言提供国家信息。
function getCountries(lang = 'en') {
const A = 65
const Z = 90
const countryName = new Intl.DisplayNames([lang], { type: 'region' });
const countries = {}
for(let i=A; i<=Z; ++i) {
for(let j=A; j<=Z; ++j) {
let code = String.fromCharCode(i) + String.fromCharCode(j)
let name = countryName.of(code)
if (code !== name) {
countries[code] = name
}
}
}
return countries
}
getCountries()
将返回带有国家代码及其名称的对象列表,例如。{AC: 'Ascension Island', AD: 'Andorra', AE: 'United Arab Emirates', AF: 'Afghanistan', AG: 'Antigua & Barbuda', …}
AA,AB,AC,...
),并检查 Intl
是否将其作为有效的国家代码。 - Emanuele FelizianiObject.fromEntries(Object.entries(COUNTRY_CODES_TO_NAMES).map(entry => [entry[1], entry[0]]))
,其中COUNTRY_CODES_TO_NAMES
是@Gerardlamo函数的输出。 - Emanuele Feliziani我使用countries-list npm包。
import countries from "countries-list";
获取有关各个国家的详细信息:
console.log(countries.countries);
会让你得到:
{
AD: {
name: "Andorra"
native: "Andorra"
phone: "376"
continent: "EU"
capital: "Andorra la Vella"
currency: "EUR"
languages: ["ca"]
emoji: ""
emojiU: "U+1F1E6 U+1F1E9"
}
...
}
或者只是国家列表:
const countryCodes = Object.keys(countries.countries);
const countryNames = countryCodes.map(code => countries.countries[code].name);
console.log(countryNames);
将打印国家名称列表:
"Andorra"
"United Arab Emirates"
"Afghanistan"
"Antigua and Barbuda"
...
这些需要按字母顺序排序,因为它们是根据国家代码排序的:
console.log(countryNames.sort());
https://github.com/umpirsky/country-list
它会以不同的格式(文本、JSON、PHP等)提供国家列表。在Ruslan Kazakov之后。
如果你正在使用typescript和countries-list npm包,我发现以下内容可以让typescript编译器满意,如果你想要获取下拉菜单中的国家名称列表。
const countryNames = Object.values(countries.countries)
.map((item) => item.name))
.sort();
<s:select name="name" headerKey="-1"
list="countryList" id="country"
value="%{countryList}"
></s:select>
$.ajax({
url: 'rcmidAuditTrail.action',
type: 'GET',
async : false,
dataType: 'json',
error: function(data) {
console.log('error');
},
success: function(list) {
var html = '<select>'
$.each(list,function(i,value){
html+='<option>'+value+'</option>';
});
$('dropdownId').html(html);
}
});