<select> 标签上的 querySelector 具有多个属性
querySelector on <select> tag with multiple attributes
我想通过使用 querySelector
获得一个由具有 多个 属性的 select 标记 select 编辑的值数组,而不是jQuery.
我用谷歌搜索了一下,但是 Google 使用 querySelector
只列出了大约 select 多个元素。在我的例子中,我想要一个具有多个属性的 select 元素。
我放弃了搜索,我只是尝试用这个 <select>
标签编码。
<select id="bgmSources" className="bgmSelector" multiple="multiple">
<option value="1">test1</option>
<option value="2">test2</option>
<option value="3">test3</option>
</select>
在JavaScript中,我试过如下,但没有任何效果。
const values = document.querySelector("#bgmSources").value;
console.log(values);
const selectedOptions = document.querySelectorAll("#bgmSources option:selected");
selectedOptions.forEach(option => console.log(option));
有没有办法在具有多个属性的 <select>
标签中获取 selected 选项数组?
您可以 select 子选项 :checked
,然后获取每个 selected 选项的值:
bgmSources.onchange = () => {
const selectedOptionVals = Array.from(
bgmSources.querySelectorAll(':scope > option:checked'),
({ value }) => value
);
console.log(selectedOptionVals);
};
<select id="bgmSources" className="bgmSelector" multiple="multiple">
<option value="1">test1</option>
<option value="2">test2</option>
<option value="3">test3</option>
</select>
您不能使用 .value
来为 multiple
获得有意义的结果,不幸的是,您必须使用 :checked
,而不是 :selected
。
我想通过使用 querySelector
获得一个由具有 多个 属性的 select 标记 select 编辑的值数组,而不是jQuery.
我用谷歌搜索了一下,但是 Google 使用 querySelector
只列出了大约 select 多个元素。在我的例子中,我想要一个具有多个属性的 select 元素。
我放弃了搜索,我只是尝试用这个 <select>
标签编码。
<select id="bgmSources" className="bgmSelector" multiple="multiple">
<option value="1">test1</option>
<option value="2">test2</option>
<option value="3">test3</option>
</select>
在JavaScript中,我试过如下,但没有任何效果。
const values = document.querySelector("#bgmSources").value;
console.log(values);
const selectedOptions = document.querySelectorAll("#bgmSources option:selected");
selectedOptions.forEach(option => console.log(option));
有没有办法在具有多个属性的 <select>
标签中获取 selected 选项数组?
您可以 select 子选项 :checked
,然后获取每个 selected 选项的值:
bgmSources.onchange = () => {
const selectedOptionVals = Array.from(
bgmSources.querySelectorAll(':scope > option:checked'),
({ value }) => value
);
console.log(selectedOptionVals);
};
<select id="bgmSources" className="bgmSelector" multiple="multiple">
<option value="1">test1</option>
<option value="2">test2</option>
<option value="3">test3</option>
</select>
您不能使用 .value
来为 multiple
获得有意义的结果,不幸的是,您必须使用 :checked
,而不是 :selected
。