Показать сообщение отдельно
  #5 (permalink)  
Старый 26.05.2015, 10:11
Интересующийся
Отправить личное сообщение для oneplus Посмотреть профиль Найти все сообщения от oneplus
 
Регистрация: 25.05.2015
Сообщений: 24

Огромное спасибо.
Огромное спасибо, работает!
Правильно ли понимаю?
var s = document.querySelectorAll("select"),//все списки
    o = s[1].options,//второй список, где будут происходить изменения
    op = o[2];//оптион, который будет удаляться
//а вот, что происходит дальше?
//"this.selectedIndex" - расшифруйте пожалуйста условие
//true - удаляем третий оптион, false - добавляем третий оптион во второй список
function foo() {
    this.selectedIndex ? o.remove(2) : o.add(op, 2)
}
//первый список при каждом изменении проверяется по функции?
s[0].onchange = foo;

Вообщем не хотелось бы вставлять безглядно код, прошу расшифровать обычном языком, что произошло, особенно в функции не понимаю \ не вижу условия "при выборе селект0 оптион1".
И второй вопрос, на странице, да и в самом калькуляторе будут еще селекты, а если добавить селектов (например селект перед), скрипт перестает работать корректно, можно ли привязать этот скрипт только к этим двум селектам, например по id?

Что не правильного в этом условии? Почему не возвращает оптион 2.
var objPro = document.getElementById("profile_id");
var objSel = document.getElementById("surface_id");
function foo() {
  (objPro.selectedIndex == 1) ? objSel.options.remove(2) : objSel.options.add(objSel.options[2],2)
}
objPro.onchange = foo;

Скрипт по началу работает как надо, но при обратном выборе оптион 2 не возвращает.
В html все id прописаны.

Последний раз редактировалось oneplus, 26.05.2015 в 10:50.
Ответить с цитированием