Nano Hash - криптовалюты, майнинг, программирование

Получение выбранных параметров с помощью querySelectorAll

Интересно, возможно ли в Javascript получить выбранные в данный момент параметры в поле <select multiple> с помощью API Selctors, а не «глупого» перебора всех параметров.

select.querySelectorAll('option[selected="selected"]') возвращает только те параметры, которые были отмечены как предварительно выбранные в исходном HTML, а это не то, что мне нужно. Любые идеи?


  • Я думаю, что ваш единственный вариант - перебрать все элементы option и отфильтровать те, которые не выбраны. 23.03.2013

Ответы:


1

document.querySelectorAll('option:checked')

Работает даже в IE9;)

23.03.2013
  • Должно работать с 9.0, совместимость с браузером внизу 23.03.2013
  • Если jQuery является вариантом, вы можете использовать селектор :selected 23.03.2013

  • 2

    Я также столкнулся с вашей проблемой, у меня такое чувство, что это связано с тем, что JavaScript не распознает изменения в DOM.

    Вот решение:

    jsFiddle

    document.getElementById('test').onclick = function () {
        var select = document.getElementById('select');
        var options = getSelectedOptions(select);
        console.log(options);
    };
    
    function getSelectedOptions(select) {
        var result = [];
        var options = select.getElementsByTagName('option');
        for (var i = 0; i < options.length; i++) {
            if (options[i].selected)
                result.push(options[i]);
        };
        return result;
    }
    
    23.03.2013
  • JS распознает эти изменения в DOM. Проблема в том, что свойство selected DOM не сериализуемо. Атрибут selected соответствует свойству defaultSelected DOM, поэтому запрос атрибута, как в [selected], вернет элементы, для которых свойство defaultSelected DOM установлено на true. 14.07.2013
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..