Javascript 使用querySelectorAll获取选定选项
我想知道在Javascript中,是否可以使用Selctors API而不是对所有选项进行“愚蠢”的迭代,在Javascript 使用querySelectorAll获取选定选项,javascript,html-select,selectors-api,Javascript,Html Select,Selectors Api,我想知道在Javascript中,是否可以使用Selctors API而不是对所有选项进行“愚蠢”的迭代,在字段中获取当前选择的选项 select.querySelectorAll('option[selected=“selected”]”)仅返回在原始HTML中标记为预选的选项,这不是我要查找的。有什么想法吗?我也遇到过您的问题,我觉得这与JavaScript无法识别DOM中的更改有关 以下是一个解决方案: document.getElementById('test')。onclick=fu
字段中获取当前选择的选项
select.querySelectorAll('option[selected=“selected”]”)
仅返回在原始HTML中标记为预选的选项,这不是我要查找的。有什么想法吗?我也遇到过您的问题,我觉得这与JavaScript无法识别DOM中的更改有关
以下是一个解决方案:
document.getElementById('test')。onclick=function(){
var select=document.getElementById('select');
var options=getSelectedOptions(选择);
console.log(选项);
};
函数getSelectedOptions(选择){
var结果=[];
var options=select.getElementsByTagName('option');
对于(变量i=0;i
document.queryselectoral('option:checked')
甚至可以在IE9上工作;) 我认为您唯一的选择是迭代所有
选项
元素并过滤掉未选中的元素。底部的浏览器兼容性如果jQuery是一个选项,那么您可以使用:selected
选择器js识别对DOM的这些更改。问题在于所选的DOM属性是不可序列化的。selected
属性对应于defaultSelected
DOM属性,因此在[selected]
中查询属性将返回defaultSelected
DOM属性设置为true
的元素。
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;
}