Тот случай, когда проще самому написать, чем объяснить. Но я попробую. Создаёшь массив всех Section и прогоняешь их через цикл, в котором пушишь в новый массив все option c значением selected. Затем этот массив собранный из option прогоняешь через цикл, в котором приплюсовываешь value к какой нибудь переменной. Не забудь преобразовать value в Number иначе у тебя дует получться что-то типа 150015007007300, так как value у option имеет string`овый тип данных.
Для того чтобы скрывать данные во втором select в зависимости от первого, вешаешь событие change select и через условия проверяешь: "Если у текущего select`a выбранный option имеет innerHTML == "Нужно тебе значение", то у другого select`a в котором необходимо изменить значения делаешь .options.length = 0; А затем используешь вот такую функцию
//Функция добавления новой опции к выбранному списку
function addOption (oListbox, text, value, isDefaultSelected, isSelected)
{
var oOption = document.createElement("option");
oOption.appendChild(document.createTextNode(text));
oOption.setAttribute("value", value);
if (isDefaultSelected) oOption.defaultSelected = true;
else if (isSelected) oOption.selected = true;
oListbox.appendChild(oOption);
}
Используешь её вот так:
arrSelect[7].options.length = 0;
addOption(arrSelect[7], "- не выбран -", "0", true);
addOption(arrSelect[7], "топлок 41мм", "25", false);
addOption(arrSelect[7], "топлок 43мм", "25", false);
// arrSelect[7] - это твой массив собраных select где ключ это нужный тебе select
// "- не выбран -" - это то что будет написано между тегами <option>
// "0" - это будет value
// true - если надо что бы этот option в select был выбранным по умолчанию для остальных false
вроде всё.