0

私は今javascriptを学んでいるので、これは本当に初心者の質問かもしれません! 私はそれをグーグルで検索しましたが、探していたものが見つかりませんでした。おそらく、正しいものをグーグルで検索しなかっただけかもしれませんが、ええ...クッキー用のプラグインを使用していません。

「country」という名前の Cookie があります。値は、ユーザーの国コード (米国、カナダ、英国、オーストラリア、フランスなど) です。国が DE、ES などの場合にのみコンテンツのブロックを表示したいです。 AT、IT、または NL。

私が探しているもののロジック: クッキー「国」が存在し、国 == 私の配列内の国の 1 つである場合...

私は次のようなことを考えています...しかし、それは明らかに単純すぎて機能しません:)

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 に答える