javascript - 通过 jQuery 对选项值进行分组

标签 javascript jquery arrays list optgroup

如何对选项值进行分组。 这是我的 HTML

<select id="kota"> </select>

和我的 JS

var $sel = $('select#kota');
availableTags.forEach(function(tag) {
  $sel.append('<optgroup label="'+tag.area+'"><option value="'+tag.stationcode +'">'+ tag.label +'</option></optgroup>');
});

我想将 Jakarta 和万隆的“标签”分开。有 body 帮助吗?或建议? 这是我在 jsfiddle 中的完整代码。 https://jsfiddle.net/dedi_wibisono17/u1be7gkq/7/

我想要这样的预期 enter image description here

谢谢

最佳答案

这个解决方案怎么样?希望它有帮助:)!

$(document).ready(function(){
       
var availableTags = [{
    label: "Bandung - Bandung (BD)",
    area: "Bandung",
    station: "Bandung",
    stationcode: "BD"
}, {
    label: "Bandung - Cicalengka (CCL)",
    area: "Bandung",
    station: "Cicalengka",
    stationcode: "CCL"
}, {
    label: "Bandung - Cikadongdong (CD)",
    area: "Bandung",
    station: "Cikadongdong",
    stationcode: "CD"
}, {
    label: "Jakarta - Gambir (GMR)",
    area: "Jakarta",
    station: "Gambir",
    stationcode: "GMR"
}, {
    label: "Jakarta - Jakarta Kota (JAKK)",
    area: "Jakarta",
    station: "Jakarta Kota",
    stationcode: "JAKK"
}, {
    label: "Jakarta - Jatinegara (JNG)",
    area: "Jakarta",
    station: "Jatinegara",
    stationcode: "JNG"
}];

var bandungArray = [];
var jakartaArray = [];
var output1 = [];
var output2 = [];

for(var i = 0 ; i < availableTags.length; i++){
	if((availableTags[i].label).indexOf("Bandung") !== -1){
		bandungArray.push(availableTags[i]);
	}
	else{
		jakartaArray.push(availableTags[i]);
	}
}

bandungArray.forEach(function(tag) {
	output1.push('<option value="'+ tag.stationcode +'">'+ tag.label +'</option>');
});
jakartaArray.forEach(function(tag) {
	output2.push('<option value="'+ tag.stationcode +'">'+ tag.label +'</option>');
});

$('#kota').html("<optgroup label='Bandung'>"+output1.join('') + "<optgroup label='Jakarta'>"+output2.join(''));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<select id="kota">
</select>

关于javascript - 通过 jQuery 对选项值进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40755303/

相关文章:

javascript - 在 anchor 标记上使用 onclick 属性和 jquery 单击处理程序,仅调用 onclick 函数。难道我们不能将两者都用作点击处理程序吗

javascript - 谷歌可视化数据表间歇性问题

javascript - 获取 float 在下一行的第一个元素

javascript - 文本结束在同一行

jQuery 计算总计

arrays - 数组中的 Golang 指针

jquery - 如何强制响应式数据表显示超过 6 列?

javascript - 一旦我们收到 api 调用的响应,如何解决 promise ?

arrays - 获取数组最后 N 项的最短方法是什么?

javascript - Javascript中的图像到Uint8Array