.innerHTML
может возвращать объекты HTML $
.Вместо этого используйте .textContent
или .innerText
.Кроме того, поскольку price
не может быть двумя разными символами, я предлагаю использовать вложенные else if
с вместо нескольких 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";
}
Существует два других метода:
Блоки переключения:
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