Dodanie opcji do selecta na stronie .jsp - jQuery

0

Witam,

z góry przepraszam jeśli będzie to pytanie nie na miejscu, albo będzie to totalna abstrakcja, ale z jQuery nie miałem jeszcze styczności.

Otóż, pisze aplikacje webową w Javie EE i na stronie .jsp potrzebuje użyć zależnych dropdown list.
Znalazłem odpowiedni skrypt, przerobiłem go na swoje potrzeby, jednak mam problem z dodaniem opcji do selecta.

Moja strona .jsp wygląda tak:

 <select id="second" class="form-control" role="listbox" style="display:none">
                <option value="0" selected="selected">Wybierz podkategorie</option>
                <c:forEach var="subcategories" items="${subcategories}">
                    <option>${subcategories}</option>
                </c:forEach>
 </select>

a w skrypcie mam następującą metodę:

var subcategories = [$('#subcategories')];
 var generateOptions = function(element) {
        var options = '';
        for(var i = 1; i <= subcategories.length; i++) {
            options += '<option value="'+i+'">'subcategories[i]'</option>';
        }
        element.append(options);
    };

Kombinowałem coś po swojemu wiec proszę o wyrozumiałość :D

1

A gdzie tu pytanie?

Moja szklana kula podpowiada mi, że chcesz zrobić coś takiego:

DEMO

const category = document.querySelector('#category');
const subcategory = document.querySelector('#subcategory');
const suboptions = subcategory.querySelectorAll('option:not(:first-child)');
const defaultSuboption = subcategory.querySelector('option:first-child');

category.addEventListener('change', e => {
  suboptions.forEach(option => {
  	const { categoryId } = option.dataset;
   	option.style.display = categoryId === e.target.value ? 'block' : 'none';
  });
  
  defaultSuboption.selected = true;
})
0

Faktycznie, wybaczcie, zapomniałem doprecyzować.
Ogólnie chciałbym do skryptu przekazać tablice, listę opcji pobraną ze strony .jsp - ${subcategories} .

I w metodzie generateOptions() przeiterować po liście i dodać jej każdy element do drugiej dropdown listy.

I pytanie brzmi jak powinna wyglądać ta metoda, aby spełniła te założenia ?

Nie chciałbym już zmieniać skryptu bo wczoraj męczyłem się z nim bardzo długo żeby go dostosować do swoich potrzeb.
Bedę wdzięczy za wszelkie porady :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1