Для таких вещей стоит использовать конструкторы. И для переключения каждого элемента существуют циклы (
for, while).
Переписал пример с использованием конструктора (избавляемся от дублирования кода) и добавил циклы. Что именно делает пример, разбираться не стал - думаю, сами прикрутите.
function Update(idFirst, idSecond,idThird,someAnotherNumberOfId,howMuchYouWant) {
update1 = function () {
var val = +this.value;
var showFirst = [4].indexOf(val) >= 0;
var showSecond = [3, 4, 5, 6, 8].indexOf(val) >= 0;
$(idFirst).toggle(showFirst);
$(idSecond).toggle(showSecond);
!showFirst && $(idFirst + ' select').val(1).change();
!showSecond && $(idSecond + ' select').val(1).change();
};
update2 = function(){
var iterations = 5;
if(howMuchYouWant){
iterations = howMuchYouWant;
}
var idS=[];
for(var i=0;i<iterations;i++){ //Создаем массив ИДшников
idS.push(idFirst+'el'+someAnotherNumberOfId);
someAnotherNumberOfId+=1;
}
console.log(idS);
var val = +this.value;
var showFirst = [8].indexOf(val) >= 0;
for(var i=0;i<iterations;i++){ //Переключаем на каждом .toggle(showFirst)
$(idS[i]).toggle(showFirst);
!showFirst && $(idS+' select').val(1).change();
}
}
$(idThird).change(update1).change();
$(idThird).change(update2).change();
}
var firstUpdate= new Update('#f_lr1gr2','#f_lr1grt','#lr1rt',1);
var secondUpdate= new Update('#f_lr1gr2','#f_lr1grt','#sp1rt',1);
firstUpdate();
secondUpdate();
Исправил очепятку