Сгруппируйте опции выбора в optgroups, используя javascript - PullRequest
0 голосов
/ 20 апреля 2020

Я работаю на сайте woocommerce, где я использую продукты в качестве моделей автомобилей. Я пытаюсь сгруппировать значения / продукты опций в optgroups. В настоящее время у меня есть варианты / продукты, сохраненные как

AUDI#A4 (2003-2009)  
AUDI#A5 (2003-2009)  
VW#Passat B7 (2003-2009)
VW#Passat B8 (2003-2010)

С JS они должны быть сгруппированы следующим образом:

AUDI
A4 (2003-2009)
A5 (2003-2009)
VW
Passat B7 (2003-2009)
Passat B8 (2003-2010)

Это часть JS, которую я использую для получения продукты и сделать группировку:


   addProductsSelect(productIds){
      var select = this.element.find('.pcd-select.pcd-default').last();
      select[0].disabled = false;      
      select[0].options[0] = new Option(this.productDefOptionTitle, '');

      var pId;  
      var l = productIds.length;          
    var tempObj = {};
        productIds.forEach(val =>{
            var newVal = this.products[val].title.split("#");
            if (tempObj[newVal[0]] === undefined) {
                tempObj[newVal[0]] = [newVal[1]]
            }else{
                tempObj[newVal[0]].push(newVal[1])
            }
        })
        for (const val in tempObj) {
            let createOpt = document.createElement("optgroup");
            createOpt.setAttribute("label",val)

            tempObj[val].forEach(value =>{
                let option = document.createElement("option");
                option.innerText = (value);
                option.value = this.productsIds;
                createOpt.appendChild(option);
            })
            select[0].appendChild(createOpt);
        }

Проблема в том, что я не могу получить option.value, которое должно быть productID.

Может кто-нибудь помочь, пожалуйста, как получить идентификатор продукта

...