Я хотел бы определить, есть ли опция выбора под «международной» optgroup. Прямо сейчас мой подход заключается в обнаружении ближайшей optgroup из выбранного элемента и получении содержимого его атрибута метки. Я мог бы проверить эту строку для слова «международный». Другие подходы более приветствуются.jQuery get parent optgroup
Как вы можете сказать, из этой разметки его жаль, что OPTGROUP не завернуть ребенок опции:
<select id="venue">
<optgroup label="New England"></optgroup>
<option value="1"> NH</option>
<option value="2"> ME</option>
<option value="3"> VT</option>
<option value="4"> MA</option>
<option value="4"> CT</option>
<option value="4"> RI</option>
<optgroup label="International"></optgroup>
<option value="100">Canada</option>
<option value="100">Texas</option>
<option value="100">Mexico</option>
</select>
JQuery Я работал с явно не будет работать, но вы можете увидеть, где я пытаюсь добраться до:
dropdownval = jQuery('select#venue option:selected')
.parentsUntil(jQuery('optgroup'), '[label*="international"]')
.attr('label');`
EDIT
Свое указал мне, что следующий вложенность optgroups Также возможно
<select id="venue">
<optgroup label="New England"></optgroup>
<option value="1"> NH</option>
<option value="2"> ME</option>
<option value="3"> VT</option>
<option value="4"> MA</option>
<option value="4"> CT</option>
<option value="4"> RI</option>
<optgroup label="International"></optgroup>
<option value="100"> Canada</option>
<option value="100"> Texas</option>
<option value="100"> Mexico</option>
<optgroup label=" Europe"></optgroup>
<option value="100"> Bruges</option>
</select>
'.prevUntil' является то, что вам нужно, а не' .parentsUntil ', так как optgroup не является родительским. – Barmar
хороший крик, но 'dropdownval' по-прежнему возвращается как' undefined' – orionrush
Я не знал, что 'prevUntil' останавливает _before_ согласованный элемент, не включая его. См. Мой ответ. – Barmar