Переименование option в селекте по клику
Всем доброе утро, подскажите как реализовать.
Есть select в котором несколько значений, нужно что бы по нажатию на кнопку innerHTML заменялся на Англоязычное слово, в голову никакие идеи не идут кроме всем дать id и менять innerHTML по клику. Может посоветуете что-то получше? а то мне такой способ не по душе, а в голову ничего не приходит:( <select id="length" onChange="convert();" style="display: none;"> <option value="0.001">Миллиметр</option> <option value="0.01" selected="selected">Сантиметр</option> <option value="0.1">Дециметр</option> <option value="1">Метр</option> <option value="1000">Километр</option> <option value="0.3048">Фут</option> <option value="0.3048/12">Дюйм</option> <option value="4828.0417">Лига (Лье)</option> <option value="1852">Морская миля</option> <option value="2.54e-08">Микродюйм (мкдм)</option> <option value="0.3048*5280">Миля</option> <option value="0.9144">Ярд</option> </select> |
Цитата:
|
Я хочу сделать кнопку смена языка.
Что бы нажимаешь на неё и Миллиметр, Дециметр итд становились Millimeter, decimeter |
ghostik, вона чё... :)
У селекта есть коллекция оптионс, пробегая по ней получишь все значения каждого оптион. Т.ч. ИД каждому не понадобится... |
Само просто:
заведи массив:
var a = {};
a['Millimeter'] = 'Миллиметр';
...
при смене на английский пробегай по своим option, доставай что имеется, ищи соответствие в a и заменяй. Для кнопки "Русский" алгоритм еще проще будет. Хотя по хорошему спроектируй так чтобы в некую функцию передаешь направление перевода и текущее значение, и получаешь результат |
Спасибо большое! Пойду пытаться)
|
function translate(rus) {
var elems = document.getElementById("length").getElementsByTagName("OPTION");
for (var i = 0; i < elems.length; i++)
elems[i].innerHTML = translate[rus][elems[i].innerHTML];
}
translate[0] = {
"Дециметр" : "Decimeter",
"Миллиметр" : "Millimeter",
"Ещё что-то" : "И перевод"
};
translate[1] = {
"Decimeter" : "Дециметр",
"Millimeter" : "Миллиметр",
"И перевод" : "Ещё что-то"
};
<input type='button' value='английский' onclick='translate(0)' /> <input type='button' value='русский' onclick='translate(1)' /> |
Большое спасибо!! Все получилось!!
Сейчас буду пробовать вынести массив в отдельный файл языковой. Я думаю просто этот файл нужно вначале подключить, а в нем просто объявить массив. Все правильно? |
Так и оказалось) дольше писать чем делать, всем огромное спасибо!!
|
| Часовой пояс GMT +3, время: 19:04. |