掌握querySelectorAll选择的选项(Getting selected options w

2019-08-17 22:04发布

我不知道是否有可能在Javascript中获得在当前选择的选项<select multiple>使用Selctors API,而不是在所有选项的“愚蠢”迭代领域。

select.querySelectorAll('option[selected="selected"]')只返回被标记为原始的HTML,这是不是我要找的预选的选项。 有任何想法吗?

Answer 1:

document.querySelectorAll('option:checked')

即使工作在IE9;)



Answer 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;
}


文章来源: Getting selected options with querySelectorAll