我想检测选择选项是否在“国际”选项组下。现在我的方法是从所选项目中检测最近的 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');`
编辑
有人向我指出,以下嵌套的 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>
<optgroup label=" Europe"></optgroup>
<option value="100"> Bruges</option>
</select>