| 
 Подскажите как выделить все checkbox между выделенными вручную? Добрый день. Есть таблица с чекбоксами. По нажатию на них происходить запись id в массив. Выглядит это сейчас так: 
if(trCheck){
  var result = [];
  [].forEach.call(trCheck, function(item, i) {
      checkBox = item.childNodes[0].childNodes[0];
      if(checkBox){
           checkBox.addEventListener('click', function() {
                if(this.checked){
                     id = this.parentNode.getAttribute("id");
                     result[i] = id;
                }else{
                     delete result[i];
               }
           });
        }
   });
   return result;
}
Как сделать так, чтобы если галочки поставлены не друг рядом с другом их тоже выбирало и id записывались в массив. Например пользователь поставил галочки на вторую и четвертую строку, чтобы и третья выбралась. Заранее спасибо. | 
| 
 Цитата: 
 | 
| 
 Artur_Hopf, выделение диапазона по двум кликам | 
| 
 рони, спасибо, попробую :thanks: | 
| 
 Сделал так, все работает, вроде не слишком криворуко: 
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;
                        }
                    });
                }    
            });
        }
 | 
| Часовой пояс GMT +3, время: 05:17. |