0

我现在正在学习 javascript,所以这可能是一个非常新的问题!我用谷歌搜索了它,但没有找到我要找的东西,也许我只是没有用谷歌搜索正确的东西,但是是的......哦,我没有使用任何 cookie 插件。

我有一个名为“country”的 cookie,其值是用户的国家代码,如 US、CA、UK、AU 或 FR……我只想显示一个内容块,如果国家是,比如说 DE,ES, AT、IT 或 NL。

我正在寻找的逻辑:如果存在 cookie“国家”并且国家 == 我数组中的国家之一......

我正在考虑类似的事情......但这显然太简单而且不起作用:)

var countryArray = new Array["DE", "ES", "AT", "IT", "NL"];

if( $.cookie('country') && $.cookie('country') == countryArray ) { alert("working"); }
4

2 回答 2

1

您可以将indexOf用于新浏览器:

countryArray.indexOf($.cookie('country')) > -1

另外,而不是

 countryArray = new Array["DE", "ES", "AT", "IT", "NL"];

你需要写:

 countryArray = ["DE", "ES", "AT", "IT", "NL"];

更新:对于旧浏览器,请将此脚本包含在您的js

 Array.prototype.indexOf = Array.prototype.indexOf || function( value, startIndex ){
     var i = startIndex || 0;
     for(; i < this.length; ++i){
         if( value === this[i] ){
             return i;
         }          
     }
     return -1;
 }
于 2012-04-16T16:52:49.000 回答
1

有一个关联数组。

var countryArray = [];

countryArray["DE"]=true;
countryArray["ES"]=true;
etc.

if( $.cookie('country') && countryArray[$.cookie('country')] )
 { alert("working"); }

将适用于所有浏览器..

于 2012-04-16T16:54:53.467 回答