Способ настройки массива классов:
Код: Выделить всё
const classes1 = [
{
id: '',
text: 'Select ICQ...',
},
{
id: 'fighter',
text: 'Fighter',
children: [
{
id: 'barbarian',
text: 'Barbarian',
children: [
{ id: 'beserker', text: 'Beserker' }
],
id: 'soldier',
text: 'Soldier',
children: [
{ id: 'knight', text: 'Knight' }
]
}
]
},
{
id: 'archer',
text: 'Archer',
children: [
{
id: 'ranger',
text: 'Ranger',
children: [
{ id: 'elite-ranger', text: 'Elite Ranger' }
],
id: 'paladin',
text: 'Paladin',
children: [
{ id: 'bard', text: 'Bard' }
]
}
]
},
{
id: 'mage',
text: 'Mage',
children: [
{
id: 'wizard',
text: 'Wizard',
children: [
{ id: 'warlock', text: 'Warlock' }
],
id: 'druid',
text: 'Druid',
children: [
{ id: 'artificer', text: 'Artificer' }
]
}
]
},
];
Я закомментировал весь код в JSFiddle, который я пытался использовать. . Мне удалось получить Class2 с помощью функции find(), но она возвращает только первое найденное значение, и когда я пытался переключить его на использование filter(), оно всегда возвращалось как неопределенное.
Код: Выделить всё
const classes1 = [
{
id: '',
text: 'Select ICQ...',
},
{
id: 'fighter',
text: 'Fighter',
children: [
{
id: 'barbarian',
text: 'Barbarian',
children: [
{ id: 'beserker', text: 'Beserker' }
],
id: 'soldier',
text: 'Soldier',
children: [
{ id: 'knight', text: 'Knight' }
]
}
]
},
{
id: 'archer',
text: 'Archer',
children: [
{
id: 'ranger',
text: 'Ranger',
children: [
{ id: 'elite-ranger', text: 'Elite Ranger' }
],
id: 'paladin',
text: 'Paladin',
children: [
{ id: 'bard', text: 'Bard' }
]
}
]
},
{
id: 'mage',
text: 'Mage',
children: [
{
id: 'wizard',
text: 'Wizard',
children: [
{ id: 'warlock', text: 'Warlock' }
],
id: 'druid',
text: 'Druid',
children: [
{ id: 'artificer', text: 'Artificer' }
]
}
]
},
];
//Set up the Class Tree
$("#classtree1").append(classes1);
$('#classtree1').select2({
multiple: false,
placeholder: "Select class...",
data: classes1,
allowClear: true
});
// Change the values on first select
$("#classtree1").on("change", function () {
//$("#classtree2 option[value]").remove();
var selectedClassOne = $(this).val();
$('#test1').text(selectedClassOne); //TESTING
console.log(selectedClassOne);
//var foundClassTwo = classes1.filter(item => item.parent === selectedClassOne).text;
//$('#test2').text(foundClassTwo); //TESTING
//$("#classtree2").append(newOptions).val("").trigger("change");
//console.log(foundClassTwo);
//console.log(classes1.find(item => item.id === selectedClassOne));
});Код: Выделить всё
#classes select {
width:30%;
}Код: Выделить всё
Classes
Class1
Class2
Class3
Подробнее здесь: https://stackoverflow.com/questions/788 ... ng-select2