我正在尝试使用Javascript获取用户当前位置的国家/地区代码。有了代码,我有,我将获得两个字母的国家代码,然后我需要将这两个字母的国家代码与我的预定义数组匹配,以获得三个字母的国家代码。
下面是我的代码,但是一旦我为三个字母的国家/地区代码添加了预定义的数组内容,它就无法运行。我的警报箱现在都没有工作。
<html>
<head>
<title>Get web visitor's location</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
var threeLtrCC.US = 'USA';
var threeLtrCC.IN = 'IND';
$(document).ready( function() {
$.getJSON( "http://smart-ip.net/geoip-json?callback=?",
function(data){
alert( data.countryCode);
var cc = threeLtrCC[data.countryCode];
var countryCode=data.countryCode
alert(cc);
$('#newURL').attr('href','https://www.google.com&jobid='+countryCode);
}
);
});
</script>
</head>
<body>
<hr/>
<a id="newURL">url</a>
</body>
</html>
它没有提醒我任何事情。假设国家代码是美国,那么它应该与我预定义的数组匹配并打印出美国。
我做错了什么?
答案 0 :(得分:1)
您好像用这一行声明了两个变量:
var threeLtrCC.US = 'USA';
var threeLtrCC.IN = 'IND';
不向名称为threeLtrCC
的对象添加任何内容。您必须声明threeLtrCC
然后:
var threeLtrCC = {}
threeLtrCC.US = 'USA';
threeLtrCC.IN = 'IND';
甚至
var threeLtrCC = {"US": 'USA', "IN" : 'IND'}
答案 1 :(得分:1)
这是错误的
var threeLtrCC.US = 'USA';
var threeLtrCC.IN = 'IND';
您不能声明对象的属性
var threeLtrCC={IN:"IND",US:"USA"};