Jquery UI SelectMenu icon-based menu rendering

HTML

<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<div class="demo">

<form action="#">
	<fieldset>
		<select name="filesA" id="filesA">
			<option value="jquery" data-class="ui-icon-script"></option>
			<option value="jquerylogo" data-class="ui-icon-image"></option>
			<option value="jqueryui" data-class="ui-icon-script"></option>
			<option value="jqueryuilogo"  data-class="ui-icon-image"></option>
			<option value="somefile" selected="selected" data-class="ui-icon-help"></option>
		</select>
	</fieldset>
</form>

</div>

CSS

h2 {
			margin: 30px 0 0 0;
		}
		fieldset {
			border: 0;
		}
		label {
			display: block;
		}

		/* select with custom icons */
		.ui-selectmenu-menu .ui-menu.customicons .ui-menu-item-wrapper {
			padding: 0.5em 0 0.5em 3em;
		}
		.ui-selectmenu-menu .ui-menu.customicons .ui-menu-item .ui-icon {
			height: 24px;
			width: 24px;
			top: 0.1em;
		}
		.ui-icon.video {
			background: url("images/24-video-square.png") 0 0 no-repeat;
		}
		.ui-icon.podcast {
			background: url("images/24-podcast-square.png") 0 0 no-repeat;
		}
		.ui-icon.rss {
			background: url("images/24-rss-square.png") 0 0 no-repeat;
		}
    .ui-icon.source-type-blog {
			background: url("images/24-rss-square.png") 0 0 no-repeat;
		}

		/* select with CSS avatar icons */
		option.avatar {
			background-repeat: no-repeat !important;
			padding-left: 20px;
		}
		.avatar .ui-icon {
			background-position: left top;
		}
    
   body {
	font-family: Arial, Helvetica, sans-serif;
}

table {
	font-size: 1em;
}

.ui-draggable, .ui-droppable {
	background-position: top;
}
.ui-selectmenu-button.ui-button {
  width: 50px;
  padding: 0px;
}

JavaScript

$( function() {
		$.widget( "custom.iconselectmenu", $.ui.selectmenu, {
			_renderItem: function( ul, item ) {
				var li = $( "<li>" ),
					wrapper = $( "<div>", { text: item.label } );

				if ( item.disabled ) {
					li.addClass( "ui-state-disabled" );
				}

				$( "<span>", {
					style: item.element.attr( "data-style" ),
					"class": "ui-icon " + item.element.attr( "data-class" )
				})
					.appendTo( wrapper );

				return li.append( wrapper ).appendTo( ul );
			},
      _renderButtonItem: function( item ) {
        var buttonItem = $( "<span>", {
          "class": "ui-selectmenu-text"
        })
        //this._setText( buttonItem, item.label);

        buttonItem.css( "background-color", item.value );
				var wrapper = $( "<div>", { text: item.label } );

				if ( item.disabled ) {
					buttonItem.addClass( "ui-state-disabled" );
				}

				$( "<span>", {
					style: item.element.attr( "data-style" ),
					"class": "ui-icon " + item.element.attr( "data-class" )
				})
					.appendTo( wrapper );
				buttonItem.append(wrapper);
        return buttonItem;
      }
    });

		$( "#filesA" )
			.iconselectmenu()
			.iconselectmenu( "menuWidget" )
				.addClass( "ui-menu-icons" );

	} );