2012-02-04 18 views
1

私は、要素を解析し、通貨で領域を設定したいと思います。ドル記号でJavaScript文字列

HTML:

<span id="price">¥82,84</span><br/> 

Javascriptを:

 price = document.getElementById("price").innerHTML; 
     price = price.slice(0,1); 

     if(price == "€") 
     { 
      area = "europe"; 
     } 
     if(price == "£") 
     { 
      area = "europe"; 
     } 
     if(price == "\$") 
     { 
      area == "northamerica"; 
     } 
     if(price == "\¥") 
     { 
      area == "asia"; 
     } 

ユーロとポンドが作業していて、円とドルされていません。誰にもアイデアはありますか?

+6

なぜあなたは比較にバックスラッシュを使用していますか? –

答えて

9

あなたが代入演算子=を使うべき文で等価比較==を使用しています。

7

.innerHTML&dollar;を返すことがあります。代わりに.textContentまたは.innerTextを使用してください。また、priceは2つの異なる文字にすることはできませんので、複数のifの代わりにelse ifをネストして使用することをお勧めします。

エラー自体はドルと元のブロックにあります。=の代わりに==を使用しています。

  • スイッチブロック:

    price = document.getElementById("price").textContent; // or innerText for IE 
        price = price.charAt(0); // equal to .slice(0,1); 
    
        if(price == "€") { 
         area = "europe"; 
        } else if(price == "£") { 
         area = "europe"; 
        } else if(price == "$") { 
         area = "northamerica"; 
        } else if(price == "¥") { 
         area = "asia"; 
        } else { // Default 
         area = "Unknown"; 
        } 
    

    他の2つの方法があります

    switch(price) { 
        case '€': case '£': 
         area = 'europe'; 
        break; 
        case '$': 
         area = 'northamerica'; 
        break; 
        case '¥' 
         area = 'asia'; 
        break; 
        default: 
         area = 'unknown'; 
    } 
    
  • ハッシュ:

    var price = document.getElementById("price").textContent; //or innerText (IE) 
    price = price.charAt(0); 
    var priceToArea = { 
        '€': 'europe', 
        '£': 'europe', 
        '$': 'northamerica', 
        '¥': 'asia' 
    }; 
    var area = priceToArea[price] || 'Unknown'; //Default Unknown 
    
+0

予期せぬ出力をキャプチャする場合は、最初のブロックに 'else {area = 'N/A';}'を追加し、 'switch'ブロックに' default:area = 'N/A' var area = priceToArea [price] ||ハッシュ法では 'N/A'となります。 –

+0

私はあなたがここでコンマを忘れてしまったと思います。 '' $ ':' northamerica '' – ajax333221

+0

@ ajax333221きれいに見つかった、今すぐ修正されました。 –

2

はさらにRob W's answerに私はまた、明確にするため、switchステートメントを使用します。

switch (price) 
{ 
    case "€": 
    case "£": 
     area = "europe"; 
     break; 
    case "$": 
     area = "northamerica"; 
     break; 
    case "¥": 
     area = "asia"; 
     break; 
} 
関連する問題