Creating bottom-positioned icon selects using jQuery Mobile

Bottom-positioned icon selects is a user interface element that allows users to select options from a dropdown menu. It is a variation of a standard select element with added functionality provided by jQuery Mobile.

The icons are added to each option of the select menu to provide a visual cue to the user about the option they are selecting. The dropdown menu can be opened by clicking on the select menu button.

jQuery Mobile provides an easy way to create bottom-positioned icon selects using their selectmenu widget. This widget enhances the standard select element with new features such as the ability to add icons and provides a consistent look and feel across different mobile devices.


  • Load the CSS and JS files for jQuery Mobile.

  • The "page" data-role property should be used to create a page container.

  • Use the "header" data-role attribute to create a header container.

  • The header should have a title.

  • Make a primary content container using the "ui-content" class.

  • Make a select element and give it the id "bottom-icon-select".

  • Set the data-iconpos property to "bottom" to position the icons at the bottom of the selection.

  • The data-native-menu attribute must be set to "false" to use the enhanced choice menu provided by jQuery Mobile.

  • Add icons to the chosen element and each option using the data-icon properties.

  • To fix it at the bottom of the page, create a footer container and give it the "footer" data-role property and the "fixed" data-position attribute.

  • Use the selectmenu() method of jQuery Mobile to initialise the select element on the "pagecreate" event.


<!DOCTYPE html>
   <title>Bottom-Positioned Icon Selects with jQuery Mobile</title>
   <meta name="viewport" content="width=device-width, initial-scale=1">
   <!-- jQuery Mobile CSS -->
   <link rel="stylesheet" href="">
   <!-- jQuery -->
   <script src=""></script>
   <!-- jQuery Mobile JS -->
   <script src=""></script>
   <!-- Page Container -->
   <div data-role="page">
      <!-- Header -->
      <div data-role="header">
      <!-- Main Content -->
      <div role="main" class="ui-content">

         <!-- Bottom-Positioned Icon Select -->
         <select id="bottom-icon-select" data-iconpos="bottom" data-native-menu="false">
            <option value="option1" data-icon="home">Option 1</option>
            <option value="option2" data-icon="info">Option 2</option>
            <option value="option3" data-icon="gear">Option 3</option>
      <!-- Footer -->
      <div data-role="footer" data-position="fixed">
         <h1>Bottom-Positioned Icon Selects with jQuery Mobile</h1>
   <!-- jQuery Mobile Initialization -->
      $(document).on("pagecreate", function() {

Here are some of the alternate methods for implementing this type of menu,

CSS Dropdown Menus

This approach enables a high amount of customisation, including dropdown menu positioning and appearance.

JavaScript Dropdown Menus

This approach allows for dynamic customisation of the drop-down menu and adds additional features like the ability to add and remove items immediately.

However, it can take longer to design and might not be as mobile-friendly as the selectmenu widget from jQuery Mobile.

Bootstrap Dropdown Menus

This technique offers a uniform appearance and feel across various platforms and enables adjustment of the dropdown menu's position and layout.


A choose menu of this type improves user experience. They have responsive designs that adjust to various screen sizes and orientations and are optimized for mobile devices. Accessibility features including keyboard navigation, screen reader compatibility, and ARIA elements are included in the selectmenu widget. Additionally, jQuery Mobile offers cross-browser functionality.

However, relying on jQuery Mobile can increase page load times by adding extra overhead to the website. It could be difficult to modify so that it matches the layout of a website. There's a chance that this won't support all the functionality offered by the default HTML choose element offers, including multi-select, optgroup, or disabled choices.

Updated on: 22-May-2023


Kickstart Your Career

Get certified by completing the course

Get Started