Как сделать, чтобы js брал не только текст но и html?

Рейтинг: 0Ответов: 1Опубликовано: 05.09.2014

Здравствуйте.

Была задача сделать выпадающий список select и придать ему хороший вид. Нашел плагин, сделал, все работает, но назрела небольшая проблема...

Скрипт дергает данные из option и заносит их в li в виде текста.

<select name=""><option value="1"><i class="dot ok">•</i> Разрешено</option><option value="0"><i class="dot none">•</i> Запрещено</option></select>

Нужно, чтобы скрипт брал из этого селекта еще и теги <i class="dot none">•</i>

Часть скрипта, которая это выполняет:

var option = select.find('option');
                var optionSelected = option.filter(':selected');
                var optionText = option.filter(':first').text();
                if (optionSelected.length) optionText = optionSelected.text();
                var ddlist = '';
                for (i = 0; i < option.length; i++) {
                    var selected = '';
                    var disabled = ' class="disabled"';
                    if (option.eq(i).is(':selected')) selected = ' class="selected sel"';
                    if (option.eq(i).is(':disabled')) selected = disabled;
                    ddlist += '<li' + selected + '>'+ option.eq(i).text() +'</li>';
                }
                var selectbox =
                    $('<span class="selectbox" style="display:inline-block;position:relative">'+
                            '<div class="select" style="float:left;position:relative;z-index:10000"><div class="text">' + optionText + '</div>'+
                                '<b class="trigger"><i class="arrow"></i></b>'+
                            '</div>'+
                            '<div class="dropdown" style="position:absolute;z-index:9999;overflow:auto;overflow-x:hidden;list-style:none">'+
                                '<ul>' + ddlist + '</ul>'+
                            '</div>'+
                        '</span>');

Как это сделать?

Ответы

▲ 1

Попробуйте использовать вот этот код:

var option = select.find('option');
                var optionSelected = option.filter(':selected');
                var optionText = option.filter(':first').html();
                if (optionSelected.length) optionText = optionSelected.html();
                var ddlist = '';
                for (i = 0; i < option.length; i++) {
                    var selected = '';
                    var disabled = ' class="disabled"';
                    if (option.eq(i).is(':selected')) selected = ' class="selected sel"';
                    if (option.eq(i).is(':disabled')) selected = disabled;
                    ddlist += '<li' + selected + '>'+ option.eq(i).html() +'</li>';
                }
                var selectbox =
                    $('<span class="selectbox" style="display:inline-block;position:relative">'+
                            '<div class="select" style="float:left;position:relative;z-index:10000"><div class="text">' + optionText + '</div>'+
                                '<b class="trigger"><i class="arrow"></i></b>'+
                            '</div>'+
                            '<div class="dropdown" style="position:absolute;z-index:9999;overflow:auto;overflow-x:hidden;list-style:none">'+
                                '<ul>' + ddlist + '</ul>'+
                            '</div>'+
                        '</span>');