我的下拉列表中包含2个optgroup(Fiddle)。我现在要做的是,我想获取Around The World Kitchens
optgroup中的所有选项值,并将每个值都推送到数组中。
我使用$('#daily_order_kitchen_id optgroup option')
定位元素,但它不适用于我。
这是我期待的结果:
["11", "12", "13", "14", "15"]
HTML:
<select id="daily_order_kitchen_id" class="form-control">
<optgroup label="Default Kitchen">
<option selected="selected" value="8">Ondricka LLC</option>
</optgroup>
<optgroup label="Around The World Kitchens">
<option value="11">Erdman and Sons</option>
<option value="12">Franecki, Ryan and Homenick</option>
<option value="13">Jacobi-Sawayn</option>
<option value="14">Toy, Hane and Zboncak</option>
<option value="15">Bauch, Dach and Kihn</option>
</optgroup>
</select>
JS:
var selectedKitchen = $("#daily_order_kitchen_id option:selected").val();
var arr = [];
$('#daily_order_kitchen_id optgroup option').each(function () {
arr.push($(this).val())
});
console.log(selectedKitchen);
console.log(arr);
我该怎么办?
答案 0 :(得分:1)
好吧,select
有两个optgourp
一个Default Kitchen
,另一个Around The World Kitchens
。
如果您仅在optgourp
上运行选择器,则会考虑这两个群组。
如果你想从Around The World Kitchens
获得价值,你特别提到它
喜欢这个
optgroup[label="Around The World Kitchens"]
这将尝试查找标签为Around The World Kitchens
试试这个
$('#daily_order_kitchen_id optgroup[label="Around The World Kitchens"] option').each(function () {
arr.push($(this).val())
});
<强> JSFIDDLE 强>
答案 1 :(得分:0)
编辑:尝试此代码。
var selectedKitchen = $("#daily_order_kitchen_id option:selected").val();
var arr = [];
$('#daily_order_kitchen_id option').each(function () {
if($(this).parent().attr('label') != 'Around The World Kitchens') {
arr.push($(this).val());
}
});
console.log(selectedKitchen);
console.log(arr);