Показать сообщение отдельно
  #5 (permalink)  
Старый 08.05.2019, 10:32
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

Сделал так, все работает, вроде не слишком криворуко:
if(trCheck){
            var result = [];
            [].forEach.call(trCheck, function(item) {
                checkBox = item.childNodes[0].childNodes[0];
                if(checkBox){
                    checkBox.addEventListener('click', function() {
                        var num = 0;
                        [].forEach.call(trCheck, function(items) {
                            check = items.childNodes[0].childNodes[0];
                            if(check.checked === true){
                                num++
                            }
                        });
                        if(num > 1){
                            if(this.checked){
                                var union = 0;
                                [].forEach.call(trCheck, function(items, i) {
                                    id = items.childNodes[0].getAttribute("id");
                                    check = items.childNodes[0].childNodes[0];
                                    if(check.checked === true){
                                        result[i] = id;
                                        union++;
                                    }else{
                                        if(union > 0 && union < num){
                                            check.checked = true;
                                            result[i] = id;
                                        }
                                    }
                                });
                            }else{
                                [].forEach.call(trCheck, function(items) {
                                    check = items.childNodes[0].childNodes[0];
                                    check.checked = false;
                                    result = [];
                                });
                            }
                            return result;
                        }
                    });
                }    
            });
        }

Последний раз редактировалось Artur_Hopf, 08.05.2019 в 10:34.
Ответить с цитированием