Проблема с select.options[]
function Replace (sel_1 , sel_2) {
from = FindSelect(sel_1); // ищутся селект строки в 1-й where = FindSelect(sel_2); // ищутся селект строки во 2-й j = 0; buffer = sel_1.options[from]; for (j = from ; j <= where - 1; j++) { sel_2.options[j] = sel_2.options[j + 1]; } sel_2.options[where] = buffer; } Скрипт почему-то не работает. Точней работает но не так как нужно. в конце концов должно плучаться, что из первого селекта берется опт. и загоняется во второй. Но, блин, он из первого куда-то пропадает (( |
Пример:
<form name="myform"> <select name="Select" size="10" > <option selected="selected" > 1 </option> <option id="tree_1_1">1_1</option> <option id="tree_1_1_1"> 1_1_1</option> <option id="tree_1_2">1_2</option> <option id="tree_1_2_1">1_2_1</option> <option id="tree_1_2_2">1_2_2</option> <option id="tree_1_2_3">1_2_3</option> </select> <select name="select_1" size="10"> <option id="tre_1">1</option> <option id="tre_1_1" selected="selected" >1_1</option> <option id="tre_1_1_1"> 1_1_1</option> <option id="tre_1_2">1_2</option> <option id="tre_1_2_1">1_2_1</option> <option id="tre_1_2_2">1_2_2</option> <option id="tre_1_2_3">1_2_3</option> </select> <input id="text_test1" name="text_test1" value="123" type="text" /> // сюда водится индекс оптиона из первого <input name="but_1" type="button" value="find" onclick="this.form.select_1.options[this.form.text_test2.value] = this.form.Select.options[this.form.text_test1.value]"/> <input id="text_test2" name="text_test2" value="123" type="text" /> // сюда водится индекс оптиона из второго </form> в общем как видите из первого селекта после переноса выбраный оптион пропадает. Как эту беду исправить? |
SPekTR, объкты при операциях передаются по ссылке. В данном случае - тоже операция - присвоением ты именно перенес option, поскольку это объект. Если нужна копия, то посмотри объект Option (твойСелект.options[твойСелект.options.length] = new Option(тext, text))
|
тоесть он кинется только в конец списка? фигово...
Подскажи тогда, что лучше использовать. В двух окнах будет дерево, нужна копия из одного дерева в другое, на определенную позицию |
SPekTR,
> тоесть он кинется только в конец списка? фигово... почему это? то, что я написал такой индекс (options[твойСелект.options.length] - т.е. в конец добавится), так это только для примера. Пожалуйста, используй любой (свой - options[this.form.text_test2.value]) this.form.select_1.options[this.form.text_test2.value] = new Option(this.form.Select.options[this.form.text_test1.value].text, this.form.Select.options[this.form.text_test1.value].value) |
тогда он заменит оптион который стоит на этом месте... правильно понимаю?
|
а еще один вопрос, как выдернуть из стиля цвет фона?
(не понятно что писать).названиеСтиля.backgroun dColor нужен указатель именно на стиль, что бы когда он меняется не приходилось скрипт переписывать |
Цитата:
- если определен через css-класс, то посмотри объект.currentStyle[нужноеСвойствоСтиля] (IE, Opera) и window.getComputedStyle(объект, '').getPropertyValue(нужноеСвойство� �тиля); (или document.defaultView.getComputedStyle(объект , '').getPropertyValue(нужноеСвойство� �тиля);) (FF) P.S.: в личку тоже ответил |
Часовой пояс GMT +3, время: 04:01. |