HTML DOM Datalist options Collection

The HTML DOM Datalist options collection represents all the <option> elements contained within a <datalist> element. This collection provides methods and properties to access and manipulate the options programmatically. The elements appear in the same order as they are defined in the HTML document.

Syntax

Following is the syntax for accessing the Datalist options collection −

datalistObject.options

This returns an HTMLOptionsCollection object containing all the <option> elements within the datalist.

Properties

The Datalist options collection provides the following property −

Property Description
length Returns the number of <option> elements in the collection. It is a read-only property.

Methods

Following are the methods available for the Datalist options collection −

Method Description
[index] Returns the <option> element at the specified index. Indexing starts from 0. Returns null if the index is out of range.
item(index) Returns the <option> element at the given index. Indexing starts at 0. Returns null if the index is out of range.
namedItem(id) Returns the <option> element with the specified id attribute. Returns null if no matching id exists.

Example − Getting Options Count

Following example demonstrates how to access the number of options in a datalist −

<!DOCTYPE html>
<html>
<head>
   <title>Datalist Options Count</title>
</head>
<body style="font-family: Arial, sans-serif; padding: 20px;">
   <h2>Datalist Options Example</h2>
   <form>
      <label for="fruits-input">Choose a fruit:</label>
      <input id="fruits-input" list="fruits" placeholder="Start typing...">
      <datalist id="fruits">
         <option value="Apple">
         <option value="Banana">
         <option value="Cherry">
         <option value="Date">
         <option value="Elderberry">
      </datalist>
   </form>
   <p>Click the button to display the number of options:</p>
   <button onclick="countOptions()">Count Options</button>
   <p id="result"></p>

   <script>
      function countOptions() {
         var datalist = document.getElementById("fruits");
         var optionsCount = datalist.options.length;
         document.getElementById("result").innerHTML = 
            "The datalist contains " + optionsCount + " options.";
      }
   </script>
</body>
</html>

The output shows an input field with autocomplete suggestions. Clicking the button displays the count −

Choose a fruit: [Start typing...]
Click the button to display the number of options:
[Count Options]

(After clicking: The datalist contains 5 options.)

Example − Accessing Individual Options

Following example shows how to access individual option elements using different methods −

<!DOCTYPE html>
<html>
<head>
   <title>Accessing Datalist Options</title>
</head>
<body style="font-family: Arial, sans-serif; padding: 20px;">
   <h2>Accessing Individual Options</h2>
   <form>
      <input list="colors" placeholder="Choose a color...">
      <datalist id="colors">
         <option value="Red" id="red-option">
         <option value="Green" id="green-option">
         <option value="Blue" id="blue-option">
         <option value="Yellow" id="yellow-option">
      </datalist>
   </form>
   <button onclick="showOptions()">Show Options Info</button>
   <div id="info"></div>

   <script>
      function showOptions() {
         var datalist = document.getElementById("colors");
         var options = datalist.options;
         var info = "";
         
         // Using index access
         info += "First option: " + options[0].value + "<br>";
         
         // Using item() method
         info += "Second option: " + options.item(1).value + "<br>";
         
         // Using namedItem() method
         info += "Blue option by ID: " + options.namedItem("blue-option").value + "<br>";
         
         // Show all options
         info += "All options: ";
         for (var i = 0; i < options.length; i++) {
            info += options[i].value;
            if (i < options.length - 1) info += ", ";
         }
         
         document.getElementById("info").innerHTML = info;
      }
   </script>
</body>
</html>

The output displays information about accessing options using different methods −

Choose a color... [input field with dropdown]
[Show Options Info]

(After clicking:)
First option: Red
Second option: Green
Blue option by ID: Blue
All options: Red, Green, Blue, Yellow

Example − Dynamic Options Management

Following example demonstrates how to dynamically work with datalist options −

<!DOCTYPE html>
<html>
<head>
   <title>Dynamic Datalist Options</title>
</head>
<body style="font-family: Arial, sans-serif; padding: 20px;">
   <h2>Dynamic Options Management</h2>
   <form>
      <input id="country-input" list="countries" placeholder="Select country...">
      <datalist id="countries">
         <option value="United States">
         <option value="Canada">
         <option value="Mexico">
      </datalist>
   </form>
   <button onclick="addOption()">Add Brazil</button>
   <button onclick="showAllOptions()">Show All Options</button>
   <p id="options-display"></p>

   <script>
      function addOption() {
         var datalist = document.getElementById("countries");
         var newOption = document.createElement("option");
         newOption.value = "Brazil";
         datalist.appendChild(newOption);
         document.getElementById("options-display").innerHTML = 
            "Brazil added! Total options: " + datalist.options.length;
      }
      
      function showAllOptions() {
         var datalist = document.getElementById("countries");
         var options = datalist.options;
         var optionsList = "";
         
         for (var i = 0; i < options.length; i++) {
            optionsList += (i + 1) + ". " + options[i].value + "<br>";
         }
         
         document.getElementById("options-display").innerHTML = 
            "Current options (" + options.length + " total):<br>" + optionsList;
      }
   </script>
</body>
</html>

This example shows how to dynamically add options and display the updated collection.

Datalist Options Collection Methods options[index] Direct access Fast performance Array-like syntax options[0] options[1] item(index) Method call Standard DOM Safe access item(0) item(1) namedItem(id) Access by ID Unique identifier Returns null if not found namedItem("opt1")

Browser Compatibility

The Datalist options collection is supported in modern browsers that support the HTML5 <datalist> element. This includes Chrome 20+, Firefox 4+, Safari 12.1+, and Edge 12+. Internet Explorer 10+ provides partial support.

Conclusion

The HTML DOM Datalist options collection provides a convenient way to access and manipulate the option elements within a datalist. Use the length property to get the count, bracket notation or item() for index-based access, and namedItem() for ID-based retrieval. This collection enables dynamic management of autocomplete suggestions in web forms.

Updated on: 2026-03-16T21:38:54+05:30

526 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements