Есть пока 1 списка. Родитель
Данные в список приходят из json файла:
{"ants": [
{
"rod": "Messor",
"vid": [{
"vname": "Structor"
},
{
"vname": "Minor"
}]
},
{
"rod": "Camponotus",
"vid": [{
"vname": "Vagus"
},
{
"vname": "nicobarensis"
}]
},
{
"rod": "Lasius",
"vid": [{
"vname": "Niger"
},
{
"vname": "Flavus"
}]
}
]}
Вывожу первый список вот так:
<select id="people"></select>
<script>
$select = $('#people');
$.ajax({
url: 'ants.json',
dataType:'JSON',
success:function(data){
$select.html('');
$.each(data.ants, function(key, val){
$select.append('<option id="' + val.id + '">' + val.name + '</option>');
})
},
error:function(){
$select.html('<option id="-1">none available</option>');
}
});
</script>
Помогите доработать код, и создать по аналогии второй список и сделать его зависимым от первого, чтобы при выборе значения в первом родительском списке, во втором дочернем выводились данные из json исходя из структуры (вложенности).
Например, при выборе в первом списке Messor, во втором списке выводились 2 значения из json: Structor и Minor
После создания первого select
нужно повесить на него обработчик change
в котором можно менять второй select
function ajax() {
var json = {
"ants": [{
"rod": "Messor",
"vid": [{
"vname": "Structor"
},
{
"vname": "Minor"
}
]
},
{
"rod": "Camponotus",
"vid": [{
"vname": "Vagus"
},
{
"vname": "nicobarensis"
}
]
},
{
"rod": "Lasius",
"vid": [{
"vname": "Niger"
},
{
"vname": "Flavus"
}
]
}
]
};
return new Promise(function(res) {
return res(json);
});
}
var $select = $('#people');
var $selectVid = $('#vid');
ajax().then(function(data) {
$select.html('');
$select.append(data.ants.map(function (val, key) {
return '<option value="' + key + '">' + val.rod + '</option>';
}));
$select.on('change', function () {
var index = $(this).val();
$selectVid.empty()
.append(data.ants[index].vid.map(function (val) {
return '<option id="' + val.vname + '">' + val.vname + '</option>';
}));
}).change();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="people"></select>
<select id="vid"></select>
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Товарищи, ниже у меня есть пример, для парсера в Oktell, как мне заставить его читать файлcsv?
Здравствуйте у меня техт выходит за пределы графика как его можно с позиционировать?