我想檢測選擇選項是否在'國際'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');`
編輯
它已經向我指出的是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