選択オプションが「国際」オプトグループの下にあるかどうかを検出したいと思います。現在、私のアプローチは、選択した項目から最も近い optgroup を検出し、その label 属性の内容を取得することです。その文字列で「international」という単語をテストできました。他のアプローチは大歓迎です。
このマークアップからわかるように、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');`
編集
次の 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>