Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   makeDropDown в javascript (https://javascript.ru/forum/dom-window/22149-makedropdown-v-javascript.html)

cmd 07.10.2011 23:47

makeDropDown в javascript
 
Приветы.
В php есть хорошая функция, которая приобразовывает массив в выпадающий список <select>. Вот такой она бывает:
function makeDropDown($options, $name, $selected = '', $attr = ''){

    foreach ($options as $value => $description){
    	$output .= '<option value="'.$value.'"'.(($selected == $value) ? ' selected ' : '').'>'.$description.'</option>';
    }

return '<select size="1" id="'.$name.'" name="'.$name.'" '.$attr.'>'.$output.'</select>';
}


А вот как это реализовать в JS? Я погуглил - не нашел. Помыкался сам - получается уныло. Ни у кого случаем готового решения не завалялось?

Спасибо.

P.S. Нашел такой _http://www.plus2net.com/javascript_tutorial/list-adding.php вариант, но он какой-то пацаваты. Внешний по отношении к функции цикл совершенно не в масть и select надо предварительно создать...

fimble 08.10.2011 01:20

оно?
var a = ['1','2','3'],
        mydiv = document.getElementById( 'mydiv' ),

        createSelect = function( arr ) {
            var select = document.createElement('select'),
                i,
                option;

            for( i = 0; i < arr.length ; i++ ) {
                option = document.createElement( 'option' );
                option.setAttribute( 'value', arr[i] );
                option.innerHTML = arr[i];
                select.appendChild( option );
            }
            return select;
        };

    mydiv.appendChild( createSelect( a ) );


Набросал на коленке, конечно надо добавить selected и т.п.


Часовой пояс GMT +3, время: 19:06.