Переименование 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, время: 17:25. |