Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
function updateAllSelects() { const selects = Array.from(container.querySelectorAll('select.item-select')); // Получаем текущие выбранные значения для каждого селекта const selectedValues = selects.map(s => s.value); selects.forEach((select, idx) => { const currentValue = select.value; // Список выбранных в других селектах const otherSelected = selectedValues.filter((val, i) => i !== idx); // Формируем доступные опции для этого селекта: // Все элементы массива кроме тех, что заняты в других селектах, // плюс текущее выбранное значение (даже если оно занято, чтобы не сбросить выбор) const availableOptions = items.filter(item => { return !otherSelected.includes(item) || item === currentValue; }); // Сохраняем позицию курсора (если нужно) // Очищаем и создаём опции заново select.innerHTML = ''; availableOptions.forEach(optionValue => { const option = document.createElement('option'); option.value = optionValue; option.textContent = optionValue; select.appendChild(option); }); // Если текущее значение стало недоступно - выбрать первый доступный вариант if (!availableOptions.includes(currentValue)) { select.value = availableOptions.length > 0 ? availableOptions[0] : ''; selectedValues[idx] = select.value; // обновляем выбранные значения } else { select.value = currentValue; } }); }
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)