Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery: find the <optgroup> for a selected value in a <select> element

I have a dropdown menu with different option groups. If someone selects an option, how can I check which optgroup it belongs to? For example if 'ferrari' were selected, how would you determine which optgroup it belongs to?

Feel free to use jQuery or raw javascript.

<select name="testSelect">
   <optgroup label="fruits">
      <option value="apples">Apples</option>
      <option value="oranges">Oranges</option>
      <option value="pears">Pears</option>
   </optgroup>
   <optgroup label="cars">
      <option value="ford">ford</option>
      <option value="toyota">toyota</option>
      <option value="ferrari">ferrari</option>
   </optgroup>
</select>
like image 803
Don P Avatar asked Oct 23 '12 23:10

Don P


1 Answers

You can do this using jQuery:

$('select').change(function() {
    var selected = $(':selected', this);
    alert(selected.closest('optgroup').attr('label'));
});​

See a live example here: http://jsfiddle.net/jkeyes/zjLCp/1/

Update: Yes you could use parent http://jsfiddle.net/jkeyes/zjLCp/2/

selected.parent()
like image 171
John Keyes Avatar answered Sep 20 '22 14:09

John Keyes